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 531 Точки

В 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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.