Выход из цикла - PullRequest
       10

Выход из цикла

0 голосов
/ 09 января 2012

Я пытаюсь выйти из цикла, я просто хочу продолжать вводить цифры, пока не введу 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;
            }
        }

    }

}

Ответы [ 7 ]

9 голосов
/ 09 января 2012

Похоже, вам нужно переназначить числа на результат iBox.getInteger().

Попробуйте изменить

iBox.getInteger("EnterNumber");

до

numbers = iBox.getInteger("EnterNumber");
2 голосов
/ 09 января 2012

Попробуйте do-while:

int number;

do {
    number = iBox.getInteger("Enter number: ");
} while (number > 0); 
2 голосов
/ 09 января 2012

Вы устанавливаете значение чисел один раз. Когда он инициализирован, но вы никогда не назначаете ему другое значение. Я думаю, что это должно работать, но я не проверял это.

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

}

1 голос
/ 09 января 2012

Бесполезный перерыв.

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

является излишним, потому что то же самое условие while будет выполнено, если число равно 0. Другое , если также является лишним.Вы можете сделать то же самое с

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

Просто имейте в виду, что это бесконечный цикл, поскольку числа никогда не изменятся.

PS: получите хорошую книгу по программированию/ учебник

1 голос
/ 09 января 2012

Следуйте советам, в итоге вы получите:

while (numbers > 0)
{
    numbers = iBox.getInteger("EnterNumber");
}
1 голос
/ 09 января 2012

Может быть, вам стоит попробовать это:

numbers = iBox.getInteger("EnterNumber");
1 голос
/ 09 января 2012

Если вы перебираете свой код в отладчике, вы увидите, что вы не изменили numbers внутри цикла while, поэтому он никогда не завершится.

...