2012-01-09 2 views
0

Im, пытающийся вырваться из цикла, я просто хочу вводить числа, пока не войду в 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().

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

iBox.getInteger("EnterNumber"); 

в

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

Ничего себе. Захват опечатки дает вам четыре оборота. Сделайте пять. :) – fireshadow52

+0

Спасибо, что исправил проблему – BigC

1

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

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: получите хорошую книгу/учебник по программированию

Смежные вопросы