使用try / catch块时会出现Java无限循环

时间:2016-02-03 09:01:50

标签: java exception-handling infinite-loop

我被这段代码困在一个无限循环中。该程序生成无穷无尽的行"输入数字1>请输入一个数字。"当一个无效的输入像" a"输入而不是整数。 我不知道我的布尔变量有什么问题,一切对我来说都很好。请检查一下,非常感谢你。

import java.util.*;
public class Adder{
    public static void main(String[] args){

        Scanner sc=new Scanner(System.in);

        boolean correctInput=false;
        while(!correctInput){

            try{

                System.out.print("Enter number 1> ");
                int num1=sc.nextInt();

                System.out.print("Enter number 2> ");
                int num2=sc.nextInt();

                System.out.println("Sum = "+(num1+num2));
                correctInput=true;
            }
            catch(InputMismatchException e){
                System.out.println("Please enter a number.");
                correctInput=false;
            }
        }
    }
}

2 个答案:

答案 0 :(得分:3)

在catch块中添加sc.nextLine();语句。

答案 1 :(得分:0)

如果您需要重试,请添加sc.nextLine();否则你也可以通过休息来打破循环;在catch区块中的陈述。

相关问题