2017-01-03 4 views
-5

моя программа заканчивается в бесконечном цикле, как я могу сделать эту работу?Бесконечная петля с while и for loop

number=0 
while number!=4: 
    for i in range(10): 
      number+=1 

Я хочу, чтобы это закончилось, когда число равно 4 Спасибо за помощь

+2

почему вы используете '' while' и for' вместе для этого? Вам просто нужен любой из них. Кроме того, логика вашего кода будет зависеть от начального значения 'number', которое вы здесь не упомянули –

+0

это часть более сложной программы, число которых устанавливается в ноль в начале – papermaker

+0

Если вы не знаете, ваш Цикл 'for' будет выполнен полностью до того, как элемент управления вернется к' while'. Поэтому после первого полного выполнения 'for', значение числа будет' 1 + 2 ... + 10', которое не равно '4', и оно непрерывно увеличивается. Следовательно, 'number! = 4' всегда будет истинным –

ответ

1

условие (number!=4) для цикла, пока не проверяются, пока цикл не закончит выполнение, в этом случае, если number первоначально 0, будет 10, поэтому не 4:

number=0 
while number!=4: 
    for i in range(10): 
      number+=1 

Вы можете добавить условие внутри цикла для того чтобы сломать когда он достигает четырех. Я не думаю, что вам нужно для цикла вообще учитывая ваш сегмент кода, это будет делать то же самое (остановка, когда number достигает 4):

number=0 
while number<4: 
    number+=1 
4

Ваш код эквивалентен следующему:

number=0 
while number!=4: 
    number+=10 

Это означает, что number!=4 всегда будет правдой.

Я считаю, что вы хотите это:

number=0 
while number!=4: 
    number+=1