2017-03-03 4 views
-1

この単純なコードスニペットは機能しません。私は10入力を入力してwhileループから飛び出して平均を計算したいが、それはループwhileから飛び出さない。続きJavaでの連続ループ

は私のコードです:あなたがループを終了するときに、全く別の変数制御を持っているので、ユーザーは10に入るとき、それはあなたがループの外にジャンプできません

double total = 0; 
    double average; 
    int grade; 
    int counter = 0; 
    Scanner input = new Scanner(System.in); 
    while(counter < 10) { 
     grade = input.nextInt(); 
     total += grade; 
     counter++; 
    } 
    average = total/10; 
    JOptionPane.showMessageDialog(null, average); 
+3

私にとってうまく動作します。 –

+1

ループは正常に動作し、正確に10回実行されます。あなたの問題は他のどこかにあるはずです。 –

+0

@中国、問題/解決策は何でしたか? –

答えて

0

このコードに問題はありません。 JOptionPaneが見えない場合は、すべてのウィンドウが後ろに現れている可能性があるので、すべてのウィンドウを最小化してみてください。

また、whileループではなく、この状況でforループを使用する方が良いでしょう。

0

理由があります。 counter変数はループを終了するときに1つの反復ごとに1ずつ増加します。したがって、ループを10回繰り返して終了すると常に終了します。

while(grade != 10){ 
    grade = input.nextInt(); 
    if(grade != 10) 
     total += grade; 
} 

ただ、サイドノート:あなたは、ユーザーが10に入るとき、ループを抜けるので、同様に、counterない、gradeに依存してあなたの終了条件を作るように、この問題を解決するには、ユーザの入力を受け付けた場合、あなたは教えてくださいユーザーはあなたが期待するものを期待していないので、期待していないものを入力せず、指示に従うことができます。

+2

私はあなたがその質問を誤解していると思います。 OPは10回繰り返した後にループを停止するのではなく、無限にループが継続していると言いました。 –

+0

私はそれについて考えましたが、彼が質問に使った言葉(「私は10と入力してwhileループから抜け出したい」と判断して、すぐに壊れると思っています。しません。 – UnknowableIneffable

+0

キーワードはtypeで、ユーザーが10を入力してwhileループから抜け出したいと思っています。 – UnknowableIneffable

関連する問題