Я работаю с циклом while и оператором if.Получение цикла while для продолжения с помощью оператора if
Я хочу, чтобы цикл продолжался, если выполняется инструкция else. По моему мнению, «продолжать»; должен перезапустить цикл, но это не так.
Я нашел одно обходное решение, чтобы исправить это, но установить «cho = 1;». Но действительно ли это необходимо? Есть ли более логичные способы решения этой проблемы?
Спасибо!
while (sum < 21 && cho == 1 && sum != 21) {
System.out.println("Do you want to (1)hit or (2) stay?");
cho = scan.nextInt();
if (cho == 1) {
getCard(index++);
if (sum > 21) {
System.out.println("You busted! Dealer wins.");
return;
}
} else if (cho == 2) {
System.out.println("Your value is " + sum);
sum = playerTotal;
}
else{
cho = 1;
System.err.println("The input value given is not a valid integer");
continue; //Does not restart the loop.
}
}
Определить, что «не работает». Когда вы выполняете это в отладчике, что делает * делает это? Операция 'continue' делает именно то, что вы описываете, и, скорее всего, вы допустили логическую ошибку, чем ключевое слово' continue', которое не работает. – David
'continue' WILL повторить цикл, но если ваше состояние изменилось, ваш цикл закончится. – Rogue
Хорошо, я вижу, условие изменяется, когда вход не равен 1 или 2. Я не понял, что условия все еще должны были быть правдой, чтобы продолжить работу, я думал, что это переопределение. Спасибо – Maximus