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