我正在创建一个小的算法,这是其中的一部分。
如果用户输入非整数值,我想输出一条消息,然后让用户再次输入数字:
boolean wenttocatch;
do
{
try
{
wenttocatch = false;
number_of_rigons = sc.nextInt(); // sc is an object of scanner class
}
catch (Exception e)
{
wenttocatch=true;
System.out.println("xx");
}
} while (wenttocatch==true);
我得到一个永无止境的循环,我不知道为什么。
如何确定用户是否输入了一些非整数?
如果用户输入非整数,如何要求用户再次输入?
更新
当我打印异常时,出现“InputMismatchException”,该怎么办?
最佳答案
您不必做尝试。这段代码将为您解决问题:
public static void main(String[] args) {
boolean wenttocatch = false;
Scanner scan = new Scanner(System.in);
int number_of_rigons = 0;
do{
System.out.print("Enter a number : ");
if(scan.hasNextInt()){
number_of_rigons = scan.nextInt();
wenttocatch = true;
}else{
scan.nextLine();
System.out.println("Enter a valid Integer value");
}
}while(!wenttocatch);
}