делать пока петли неприятности - PullRequest
0 голосов
/ 23 сентября 2019

У меня проблемы с моим заявлением.Я создал цикл do-while, чтобы гарантировать, что единственным принятым вводом является «e» или «o» (без учета регистра), однако он продолжает цикл, даже если я вставил желаемый ввод.Любая помощь приветствуется!

Текущий код и результат

1 Ответ

0 голосов
/ 23 сентября 2019

Это утверждение:
while(!side.equalsIgnoreCase("O") || !side.equalsIgnoreCase("E"));
всегда верно

Если вы введете E или e, это !side.equalsIgnoreCase("E") ложно, но это !side.equalsIgnoreCase("O") верно

Если вы введете O или o, это !side.equalsIgnoreCase("O") будет ложным, но это !side.equalsIgnoreCase("E") верно

Поскольку вы используете ||, true || false дает вам trueтаким образом, цикл никогда не заканчивается

Для каждого другого входа оба имеют значение true (true || true), что также верно

Вам необходимо заменить его на:
while(!side.equalsIgnoreCase("O") && !side.equalsIgnoreCase("E"));

...