Miert nem all meg a do-while ciklus Java-ban?
package test;
import java.util.Scanner;
public class app {
public static void main(String[] args) {
System.out.println("Irj be valamit!");
Scanner be=new Scanner(System.in);
String s;
do{
s=be.nextLine();
}while(s!="ho");
System.out.println("Na ez mar jo! :)");
}
}
Beirom, hogy ho es tovabb keri... Eclipset hasznalok!
Azért, mert az ==, != operátor objektumoknál (mint a String is) a referenciát, memória címet hasonlítja össze. Az s változód és a "ho" literálod nem azonos objektumok, ezért a feltétel mindig igaz marad.
String-ek egyenlőségét az equals() függvénnyel vizsgáld.
Tehát:
"ho".equals(s)
vagy
s.equals("ho")
Tagadás pedig felkiáltójellel előtte. :)
#1 vagyok, javítok:
"nem azonos objektumok" helyett célszerűbb lett volna azt írnom, hogy "nem ugyanaz az objektum", így érthetőbb. :)
Koszi! :)
Gondoltam, hogy a String miatt van valami. Meg csak Tegnap elott kezdtem egy tutorialt es ott csak int-el probalta ki.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!