Мой код ниже циклически повторяется дважды. 1-й цикл while перед запросом пользователя (сделать выбор). Я сделал это проще, поставив выбор по умолчанию - «N».Пока цикл повторяется дважды после ввода пользователем
Таким образом, он попадает в оператор if и начинает цикл while while. Теперь он запрашивает у пользователя другой выбор. Пользователь может вводить только «А», поскольку все остальное будет ловушкой ошибки. Пользователь вводит «A» и получает запрос на добавление номера (переменная num = 0). Пользователь вводит номер.
Оператор if закрывается, а второй цикл while возвращается к началу, только он не останавливается, когда пользователю предлагается выбрать. Вместо этого он продолжается через цикл, называет оператор else, затем снова возвращается к началу второго цикла while и представляет пользователю запрос на выбор.
Код Обновлены Дополнительная информация
while (true) { // 1st while loop
choice="N";
if (choice.equalsIgnoreCase("N")) {
while (true) { // 2nd while loop
System.out.println("|-|-| Add Number [A] Go Back [B]");
System.out.println("NUMBER: "+num);
System.out.print("Choice: ");
choice = c.nextLine();
if (choice.equalsIgnoreCase("A")){
System.out.print("Add: ");
num = (c.nextInt() + num);
System.out.println("");
}
else if (choice.equalsIgnoreCase("B")){
break;
}
else {
System.out.println("ERROR 19: Invalid response");
System.out.println("");
}
}
}
}
Я попытался использовать различные переменные для выбора. Это не работает. Я думаю, мне может понадобиться попробовать поймать чуть ниже второго цикла while (до того, как пользователю будет предложено указать номер), но это только идея. Мой вопрос будет, почему это происходит? И если это возможно, как я могу это исправить?
У вас есть два «навсегда» петли и нет 'break' или' return' заявления, так как вы ожидаете, либо цикл до * когда-либо * конец? – Andreas
вы не должны иметь свой основной цикл while (true), и в настоящее время у вас нет перерывов или чего-то другого, чтобы вы могли получить наш цикл, чтобы либо добавить разрыв; когда вы закончите или переменная boolean установлена в true в начале и когда вы закончите, установите для переменной boolean значение false –
_it не останавливается, когда пользователю предлагается выбор. Эта проблема связана с использованием 'nextInt' метод. Таким образом, этот квест является дубликатом [Сканер пропускает nextLine() после использования next(), nextInt() или других методов nextFoo()] (http: // stackoverflow.ком/вопросы/13102045/сканер-это-пропуск-nextline-после использования, следующего nextint или-другой-nextfoo). – Ravikumar