, просто пытаясь обернуть мою голову вокруг Java-кодирования несколькими учебными программами и экспериментировать с циклами и утилитой сканера и просто столкнулся с проблемой при попытке использовать сканер, чтобы проверить, был ли введен правильный вход, и чтобы программа зациклилась до ввода правильного ввода.Утилита Java Scanner не позволяет пользователю повторно вводить ввод в цикле
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int numbOne;
boolean checker;
System.out.println("please enter an Interger");
do{
if(s.hasNextInt()){
numbOne = s.nextInt();
System.out.println("Yay it worked!!!");
checker = true;
}
else{
System.out.println("I told you to enter an integer you idiot\nTRY AGAIN!!!!!!");
checker = false;
}
}
while(checker == false);
}
}
В основном то, что должно произойти в том, что когда программа входит в цикл он просит пользователя ввести целое число, если пользователь вводит целое число он отображает сообщение «Yay он работал !!!» и выходит из цикла, однако, если пользователь вводит строку или любое другое значение, тогда код перемещается вокруг и должен снова запрашивать ввод.
Однако проблема заключается в том, что программа только запрашивает ввод один раз, и если вводится неправильный ввод, программа просто продолжает циклическое выполнение инструкции else снова, не спрашивая пользователя о вводе снова.
Любая идея, что я сделал неправильно?
Почему вы устанавливаете 'checker' в' true', если вы действительно не хотите выйти из цикла? – bradimus