-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 に答える