2012-01-09 17 views
0

私はループを解除しようとしていますが、0を入力するまで番号を入力し続けたいだけですが、これは私が持っているものですが、中断することはできません。ループを中断する

import javabook.*; 

class loop { 

    public static void main (String [] args) { 

     MainWindow mWin = new MainWindow(); 
     InputBox iBox = new InputBox(mWin); 

     int numbers = iBox.getInteger(""); 

     while (numbers > 0) { 
      if (numbers > 0) { 
       iBox.getInteger("EnterNumber"); 
      } else if (numbers == 0) { 
       break; 
      } 
     } 

    } 

} 
+3

あなたのプログラムを正しくインデントし、間違いを見つけてください。 –

+8

もう一度 'numbers'を設定することはありません。 –

+2

'numbers'はwhileループで更新されていません –

答えて

9

数値をiBox.getInteger()の結果に再割り当てする必要があるようです。デバッガでコードをステップ実行した場合

numbers = iBox.getInteger("EnterNumber"); 
+0

うわー。タイプミスをキャッチすると、4つのアップフォートが得られます。それを5つにする。 :) – fireshadow52

+0

ありがとう、問題を修正しました – BigC

1

iBox.getInteger("EnterNumber"); 

を変更してみてください、あなたはあなたのwhileループ内numbersを変更していないので、それは決して終了します見るであろう。

2

数字の値を1回設定します。それが初期化されても、別の値を決して割り当てない。 これはうまくいくと思いますが、テストしていません。

import javabook.*; 
class loop{ 
    public static void main (String [] args){ 

MainWindow mWin = new MainWindow(); 
InputBox iBox = new InputBox(mWin); 

int numbers = -1; 

while(numbers != 0){ 
    numbers = iBox.getInteger("EnterNumber"); 
} 
} 

}

2

do-while試してみてください。

int number; 

do { 
    number = iBox.getInteger("Enter number: "); 
} while (number > 0); 
1

はたぶん、あなたはこれを試してみてください:

numbers = iBox.getInteger("EnterNumber"); 
1

は提案に従ってください、あなたはこれで終わるだろう:

while (numbers > 0) 
{ 
    numbers = iBox.getInteger("EnterNumber"); 
} 
1

無駄な休憩。

else if (numbers == 0){ break; } 

も不必要であれば番号が他の0である場合の条件を終了する一方、非常に同じため、不必要です。あなたは番号は決して変わらないので、ただ、これは無限ループで心に留めておく

while(numbers > 0){ 
    iBox.getInteger("EnterNumber"); 
} 

と同じことを行うことができます。

PS:良いプログラミングの本/チュートリアルを入手してください

関連する問題