Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打破循环_Java_Loops_Break - Fatal编程技术网

Java 打破循环

Java 打破循环,java,loops,break,Java,Loops,Break,我试图打破一个循环,我只想一直输入数字,直到我输入0,这是我所拥有的,但我似乎无法打破它 import javabook.*; class loop { public static void main (String [] args) { MainWindow mWin = new MainWindow(); InputBox iBox = new InputBox(mWin); int numbers = iBox.getInte

我试图打破一个循环,我只想一直输入数字,直到我输入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;
            }
        }

    }

}

看起来您需要将数字重新分配给
iBox.getInteger()
的结果

试着改变

iBox.getInteger("EnterNumber");


如果您在调试器中单步执行代码,您将看到您没有在while循环中更改编号,因此它将永远不会退出。

您只需设置一次编号值。当它被初始化时,但您从未给它分配另一个值。 我认为这应该行得通,但我还没有测试过

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");
}
}

}

尝试
边做边做

int number;

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

也许你应该试试这个:

numbers = iBox.getInteger("EnterNumber");

按照这些建议,您将得到以下结果:

while (numbers > 0)
{
    numbers = iBox.getInteger("EnterNumber");
}
无用的休息

else if (numbers == 0){ break; }
是多余的,因为如果数字为0,则将退出完全相同的while条件。另一个if也是多余的。你可以用它做同样的事情

while(numbers > 0){  
    iBox.getInteger("EnterNumber"); 
}
请记住,这是一个无限循环,因为数字永远不会改变


PS:找一本好的编程书/教程

正确地缩进你的程序,你应该能发现错误。你再也不会将
数字
设置为任何东西了。
数字
不会在while循环中更新。另外:请注意,在java中,有一个很强的惯例,类名以大写字母开头,因此,将类重命名为Loop是一个好主意,例如(另外,
if(numbers>0)
是冗余的;如果输入了循环体,则大于零)。发现一个拼写错误会让你得到四张选票。那就五点吧
while(numbers > 0){  
    iBox.getInteger("EnterNumber"); 
}