-1

当我运行以下代码时,它会清除控制台但似乎没有做任何事情。

int x = 0; //exception catching loop
while (x == 0);

            ArrayList<Integer> values = new ArrayList<Integer>();
            Scanner Scores = new Scanner(System.in);//creates a scanner for the golfer's last 5 scores
            System.out.println("Please enter the scores from your last five rounds of eighteen-hole golf, in order."); 
            try
            { 
            for(int i = 0; i < 5; i++)
                {
                System.out.println("Please enter one score.");
                int scorecard = Scores.nextInt();
                values.add(scorecard); 
                }

        }catch(InputMismatchException ex){

            System.out.println("There has been an error. Please enter your last five scores again."); 
            x = 1; //if successful, will allow for continuation of the program. 
        }

但是,当我取出 while 循环和 try-catch 行时,程序运行良好,我只是不确定如何正确执行此段。它没有显示错误,但无法运行。困扰我的部分是我似乎无法正确编码异常捕获系统。(我是 Java 新手。)

4

2 回答 2

2
while (x == 0);

这将无限运行空语句x,因为循环中永远不会更改。除非您想在这里无限循环,否则请删除分号。

于 2013-01-26T21:18:03.187 回答
2

你的while循环:

while (x == 0);

是一个永不结束的不定式循环。如果你想让它做任何明智的事情,你应该在 while 之后使用删除冒号,并将 while 循环下面的所有代码包含在括号中{}

于 2013-01-26T21:21:26.337 回答