public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Please enter a digit: ");
int digit = in.nextInt();
boolean isAnInteger = false;
while (isAnInteger)
{
if (digit >= 10)
{
System.out.println("Please enter an integer: ");
}
else
{
System.out.println("Correct! " + digit + " is an integer!");
}
}
}
В настоящее время я занимаюсь AP Computer Science, и мне любопытно, как решить эту (хотя и основную) проблему. Я знаю, что «while» петли продолжают все, что находится в их соответствующих фигурных скобках, когда условие в их скобках продолжает встречаться.Как исправить этот бесконечный цикл? (AP Computer Science)
Когда я попытался установить условие while
к while (digit >= 10)
, это привело к бесконечному циклу (поправьте меня, но это связано с тем, что если пользователь вводит цифру 10 или больше, то условие будет СОХРАНИТЬ неудовлетворенными и продолжайте бесконечно). Итак, я попытался установить условие while для некоторого логического значения, а if
вложен внутри с прежним условием. Теперь, когда пользователь вводит 10, после этого ничего не происходит, и программа заканчивается.
Как написать вышеприведенный код, чтобы система продолжала печатать «Пожалуйста, введите целое число:», если условие (ввода 10 или больше и наоборот) продолжает выполняться?
Почему бы вам не обновить 'isAnInteger' нигде в вашем цикле? – Makoto
@ Макото это правильно. Как и сейчас, ваша петля никогда не должна выполняться вообще (не говоря уже о бесконечности), так как 'isAnInteger' установлен на' false'. – Windle
следует «целое число» быть «цифрой» в этом утверждении ?: 'System.out.println (« Пожалуйста, введите целое число: »);' и такое же в другом System.println (...)? –