Kezdőoldal » Számítástechnika » Programozás » Miert nem all meg a do-while...

Miert nem all meg a do-while ciklus Java-ban?

Figyelt kérdés

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!


2013. nov. 30. 13:23
 1/4 anonim ***** válasza:

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. :)

2013. nov. 30. 13:38
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

#1 vagyok, javítok:

"nem azonos objektumok" helyett célszerűbb lett volna azt írnom, hogy "nem ugyanaz az objektum", így érthetőbb. :)

2013. nov. 30. 13:43
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

Koszi! :)

Gondoltam, hogy a String miatt van valami. Meg csak Tegnap elott kezdtem egy tutorialt es ott csak int-el probalta ki.

2013. nov. 30. 14:02
 4/4 anonim ***** válasza:
Használd az equalsIgnoreCase()-t, így nem gond, hogy a felhasználó kis vagy nagy betűkkel pötyögi be.
2013. dec. 1. 12:38
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!