Софтуерно Инженерство
Loading...
+ Нов въпрос
puffed avatar puffed 289 Точки

[Language Specifics - Homework] 11. Phonebook - Java: проблем с край на програмата

Здравейте,

Написах задачата на Java, но не мога да изляза от while цикъла, като въведа END. Някой може ли да помогне и да ми обясни как трябва да стане? Благодаря!

 кодът

Тагове:
lengarski avatar lengarski 42 Точки

В Java стринговете не се срявняват с ==  а с метода .equals("");

 

смени кода да ти е

    while (!input.equals("END"))

също така не е нуждо да правиш   проверка първо дали нещо е равно на друго нещо а после да взимаш отрицанието.

Този израз ( ! ( x == y ))  е еквивалентен на ( x != y ) 

 

 

1
kaloyannikov avatar kaloyannikov 528 Точки

В Java сравнението на String-ове става с equals() а не с == . Оператора == сравнява дали обектите са равни и в повечето случаи това failва защото дори да сравняваш abc == abc ако те сочат към различно парче памет те са различни .

примерно ако имаш :

String pesho = "Pesho";
String pesho1 = "Pesho";
System.out.println(pesho==pesho1) => //това ще ти изкара true;

Ако създаваш String JVM-a търси в String pool-a и ако намери match дава същия адрес и на 2рия string.

String pesho = "Pesho";
String pesho1 = new String("Pesho");
System.out.println(pesho==pesho1) => // ще ти изкара false

String-а е обект и трябва да се сравнява с equals както и когато си правиш собствени обекти трябва да overridваш hashCode и equals.

1
puffed avatar puffed 289 Точки

Благодаря ви, така стана. Аз знаех тези неща за equals() за C# и там винаги така ги сравнявам. За override-ването на equals и hashCode-a още ми е рано, само съм го виждала веднъж. 

Аз първо го бях направила с equals, но IntelliJ-а сам ми предложи да го сменя на "=="  ;)) Няма а го слушам толкова друг път.

0
lengarski avatar lengarski 42 Точки

Да ти кажа .. това InteliJ не ми допада много предпочитам Eclipse понеже работя с него от повече от 6 години, a InteliJ (AndroidStudio) го ползвам само заради андроидски проекти. 

//PS: Но това е мое мнение, някой хора пък не харесват еклипс.. 

0
28/10/2016 14:46:32