Mi a hiba a programban? Miért nem megy a feltételvizsgálat? (Java nyelv)
Röviden. Bekérünk egy szót, amelynél kiírja ugyanazt csak másképpen. Pl: Beírod azt hogy vok és kiírja, hogy vagyok.
A programot megírtam, a baj az, hogy a feltételvizsgálat nem fut le. Itt a program
Lefuttatom, bekéri a szót, majd annyit ír ki: "Press any button to continue"
Mi a hiba benne? Hogyan lehetne megcsinálni?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
A legnagyobb hiba benne az hogy Stringeket nem a "==" operátorral hasonlítjuk össze. A "==" operátor a stringek referenciáit hasonlítja össze, tehát csak akkor lesz igaz ha mint két oldalon ugyan az az objektum áll.
Helyesen:
a.equals("vok")
Másik hiba az pedig az hogy ha jól emlékszem a Scanner.nextLine beolvassa a sor végéről a "\n" karaktert is, tehát ha "vok"-ot írsz be és nyomsz egy entert akkor az "a" változó tartalma "vok\n" lesz.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
#1: Egy apró tévedés:
A line separatort sem adja vissza a scanner.
A probléma a == vs equals kérdéskörében van.
if ("vok".equals(a)) működni fog, de inkább az equalsIgnoreCase-t ajánlanám az adott célra (leszámítva a többi aggályos részletet)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!