2012-01-09 243 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

缩进你的程序正确,您应该看出错误。 – 2012-01-09 15:20:00

+8

你从未将'数字'再次设置为任何东西。 – 2012-01-09 15:20:07

+2

'while'循环中没有更新'numbers' – 2012-01-09 15:20:14

回答

9

看起来你需要重新分配号码的iBox.getInteger()结果。

尝试改变

iBox.getInteger("EnterNumber"); 

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

哇。捕获错字可以让你四起投票。做那五个。 :) – fireshadow52 2012-01-09 15:25:25

+0

谢谢你解决了这个问题 – BigC 2012-01-09 15:26:37

1

如果通过在调试器中的执行代码,你会看到你不改变numbers while循环里面,所以它永远不会退出。

2

您设置一次数值。当它初始化时,但你永远不会为它分配另一个值。 我认为这应该可行,但我还没有测试过。

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:获得良好的编程书籍/教程