2014-09-22 4 views
0

Хорошо, поэтому мне нужно попросить пользователя ввести «да» или «нет», а затем проверить. Я должен сделать это в цикле while. Все это компилируется, я не включил импорт и т. Д. Здесь. Вот что у меня есть,Сравнение строк в цикле while

String str; 
str = JOptionPane.showInputDialog("Enter answer, yes or no?"); 

while(!str.equals("yes")||!str.equals("no")) 
{ 
    str = JOptionPane.showInputDialog(" Invalid entry. Please enter yes or no."); 

} 

При компиляции он показывает мне диалог ввода строки. Если я вхожу yes, он говорит мне недействительным, если я вхожу в no, он говорит мне недействительным. Если я возьму ||!str.equals("no"), он будет работать нормально, но только если я введу yes. Так кто-нибудь может мне помочь? Спасибо ..

+7

Произнесите состояние громко. –

+0

Позволяет немного изменить типы данных от String до int. Вы знаете любое 'x', где предложение' x! = 1 OR x! = 2' было бы ложным? – Pshemo

ответ

2

Для любого ненулевого 'ул'

while(!str.equals("yes")||!str.equals("no")) 

всегда будет истинным. Вместо сделать while(!str.equals("yes") && !str.equals("no"))

0

сделать

while (!str.equals("yes") && !str.equals("no")) { 
    str = JOptionPane.showInputDialog(" Invalid entry. Please enter yes or no."); 
} 
Смежные вопросы