Бесконечный цикл while с ключевым словом continue - PullRequest
0 голосов
/ 24 февраля 2019

Моя проблема - и я не знаю, почему существует ключевое слово continue, которое должно оставить значение 3 и пойти дальше.На самом деле, у меня есть бесконечный цикл, то есть он вылетает из программы.


tab = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
i = 0
while i < len(tab):
    print(tab[i])
    if tab[i] == 3:
        continue
    i+=1

Ответы [ 4 ]

0 голосов
/ 24 февраля 2019

Поскольку вы используете ключевое слово continue, которое пропускает остальную часть кода.Как только я достигну 3, он пропускает команду i+=1.Похоже, что вы хотите использовать ключевое слово break.Вы также можете сделать:

for i in tab:
    print(i)
    if i == 3:
        break
0 голосов
/ 24 февраля 2019

Ключевое слово continue продолжается со следующей итерации цикла.

В вашем случае это предотвращает выполнение оператора i+=1.

Вот что происходит:

  1. Прекрасно просматривает 0,1,2
  2. Когда он вычисляет tab[i] = 3, он переходит к следующей итерации цикла, и i+=1 никогда не выполняется, следовательно, iостается 3 и никогда не увеличивается.Он продолжает делать это вечно.

Если вы хотите выйти из цикла, вы можете использовать оператор break вместо continue.

Для получения дополнительной информации вы можете прочитать ключевое слово continueздесь: https://docs.python.org/3/tutorial/controlflow.html

0 голосов
/ 24 февраля 2019

Вы используете ключевое слово continue, но я думаю, что вы хотите break.

Ваш код работает вечно, потому что i никогда не повторяется после 3. После i == 4 он входит в оператор if и продолжает цикл.Поскольку он продолжается, он никогда не повторяется после этого.

0 голосов
/ 24 февраля 2019

Похоже, вы пытаетесь перебрать список, пока не найдете 3, а затем break.Сделайте что-то вроде этого:

items = [1,2,3,4,5]
for item in items:
   if item == 3:
       break

Ключевое слово continue перейдет к следующей итерации цикла, где break остановит цикл.

...