Загрузка...

Прервать цикл или пропустить шаг

break выходит из цикла сразу, даже если вопрос ещё True. continue не выходит. Он пропускает строки под собой только на этом шаге, и вопрос задаётся снова. Страница while ждала, пока вопрос станет False. print("done") стоит на одном уровне с while, значит снаружи: один раз после break и один раз, когда цикл кончается сам.

cups начинается с 0, вопрос — cups < 5. Каждый шаг сначала пишет число. Когда число равно 2, выполняется break. cups = cups + 1 стоит под break и на этом шаге не выполняется. 2 всё ещё меньше 5. Вопрос не провалился. Цикл всё равно кончился.

Выйти после записи 2

python
cups = 0
while cups < 5:
    print(cups)
    if cups == 2:
        break
    cups = cups + 1
print("done")

Вы видите 0, затем 1, затем 2, затем done. Нет ни 3, ни 4. В cups лежит 2. Эта 2 была написана, и цикл ушёл до того, как число сдвинулось.

Пропустить один шаг и остаться в цикле

continue безопасен только если число сдвигается до пропуска. Иначе значение, которое вы хотите пропустить, стоит на месте, вопрос остаётся True, и цикл не кончается. Здесь первая строка внутри прибавляет 1. Если число стало 2, continue пропускает print только этого шага. Цикл снова спрашивает cups < 4. Следующий шаг делает число равным 3, и 3 пишется.

Пропустить 2 и идти дальше

python
cups = 0
while cups < 4:
    cups = cups + 1
    if cups == 2:
        continue
    print(cups)
print("done")

Вы видите 1, затем 3, затем 4, затем done. Нет строки 2. done есть, потому что continue цикл не покинул. Вопрос позже провалился сам, и внешняя строка выполнилась один раз.

Тот же break, теперь перед print

Поставьте break над print. Шаг, который доходит до 2, уходит до всякой записи. done всё равно выполняется: он на одном уровне с while.

Выйти до записи 2

python
cups = 0
while cups < 5:
    if cups == 2:
        break
    print(cups)
    cups = cups + 1
print("done")

Вы видите 0, затем 1, затем done. cups снова равен 2, но эта 2 не была написана. Программы различаются только местом break.

Если написать continue над cups = cups + 1, пропуск может заморозить число. cups остаётся на значении, которое вы хотели пропустить, вопрос остаётся True, и цикл не кончается. Такой порядок не запускайте. Сначала сдвиньте число. Потом решайте, пропускает ли этот шаг строки под continue.

break и continue пишутся с маленькой буквы. Break или Continue с большой — имя, которого Python не знает, и программа останавливается. Следующая страница нумерует каждый элемент, который проходит, и составляет пару из двух списков. Этих двух слов там нет.

Посчитайте до запуска

  1. Первая программа пишет, потом break, когда cups равен 2. Что появляется, и что потом лежит в cups?
  2. Программа с continue прибавляет 1 до пропуска. Какие числа пишутся, и есть ли done?
  3. Третья программа выходит до print. Есть ли 2 на экране?
  4. Вы ставите continue над cups = cups + 1, и пропуск всё ещё верен. Цикл кончается?

Где меняется результат

  • После break всё ещё ждать, что cups < 5 не пройдёт
  • Ждать 3 и 4, хотя break уже сработал на 2
  • Ставить continue до сдвига числа
  • Считать выполненной строку под break
  • Писать Break или Continue с большой буквы

Одним чтением

break уходит сразу. Вопрос while может ещё быть True. Строка на уровне while выполняется, строка под break нет.
Если break после print, вы видите 0, 1, 2, затем done, и cups остаётся 2. Если break перед print, вы видите 0, 1, затем done, и cups всё ещё 2.
continue пропускает только строки под собой, на этом шаге. Если число сдвинулось раньше, вы видите 1, 3, 4, затем done, и 2 нет.
Если число не сдвигается, continue может оставить вопрос True, и цикл не кончается.
Следующая страница нумерует каждый элемент и составляет пару из двух списков.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
4
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху