Java Scanner实用程序不允许用户在循环中重新输入输入
我只是想通过一些实践程序来理解Java编码,我正在尝试循环和scanner实用程序,但在尝试使用scanner检查输入是否正确,并让程序循环直到输入正确的输入时遇到了问题Java Scanner实用程序不允许用户在循环中重新输入输入,java,loops,java.util.scanner,do-while,Java,Loops,Java.util.scanner,Do While,我只是想通过一些实践程序来理解Java编码,我正在尝试循环和scanner实用程序,但在尝试使用scanner检查输入是否正确,并让程序循环直到输入正确的输入时遇到了问题 import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner s = new Scanner(System.in); int numbOne;
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 it worked!!!”并跳出循环,但是如果用户输入一个字符串或任何其他值,那么代码会循环并再次要求输入
然而,我遇到的问题是,程序只要求输入一次,如果输入了错误的输入,那么程序只会一遍又一遍地循环else语句,而不要求用户再次输入
知道我做错了什么吗?你需要使用下一个代币。尝试在else块中调用
s.next()
基本上,“hasNextInt()”方法是一个peek方法,但它永远不会使用该输入,因此会一直查看相同的输入。如果您不想退出循环,为什么要将
checker
设置为true