Stepik: Операторы break, continue и else
break
- досрочное прекращение цикла
continue
- пропуск одной итерации цикла
break
print('запуск цикла') i = 0 while True: i += 1 break print('завершение цикла')
Программа работает бесконечно, пока не встретит команду break
. То есть если убрать break
- то "завершение цикла" мы не увидим
ПРИМЕР КОМАНДЫ break
- 2
Предположим, что есть список и мы хотим определить есть ли там хоть одно четное число
d = [1, 3, 5, 6, 0, -4] flFind = False # Инициализация переменной flFind значением False, которая будет использоваться для отслеживания нахождения четного числа i = 0 while i < len(d): flFind = d[i] % 2 == 0 # Проверка, является ли текущий элемент d[i] четным числом; результат проверки сохраняется в переменной flFind if flFind: # Можно заменить на if flFind == True break i += 1 print(flFind) # Вывод: True
continue
ПРИМЕР КОМАНДЫ continue
Пользователь вводит с клавиатуры числа, а все нечетные будут суммироваться. Но как только пользователь вводит 0 - подсчет прекращается
s = 0 # хранит сумму нечетных значений d = 1 # переменная, куда пользователь будет вводить какие либо значения while d != 0: d = int(input('Введите целое число ')) if d % 2 == 0: continue # Если число четное, цикл переходит к следующей итерации без выполнения оставшегося кода внутри цикла s += d print(f'Сумма равна {s}')
else, который можно использовать в цикле while
while <условие цикла>: опреатор 1 оператор 2 ......... оператор 3 else: - необязательный блок блок операторов после завершения цикла последующие операторы
Считаем сумму в ряде S = 1/2 + 1/3 + 1/4 + 1/10 + .... + 1/0. Если встречается деление на 0 - программа прерывается
S = 0 i = -10 while i < 100: if i == 0: break S += 1 / i i += 1 else: print('Сумма вычислена корректно') print(S) # Вывод: -2.9289682539682538
Сообщение 'Сумма вычислена корректно'
не выводится потому что i
принимает значение -10 и как только в условии цикла дошли до 0, сработал оператор break
и прервался цикл while
. Прерывание по break
-нештатное завершение. Штатное завершение - это завершение по условию в цикле.
Если поставить, что while i < 0
, то программа завершиться корректно.
S = 0 i = -10 while i < 0: if i == 0: break S += 1 / i i += 1 else: print('Сумма вычислена корректно') print(S) # Вывод: Сумма вычислена корректно # -2.9289682539682538