Операторы break и continue позволяют управлять потоком выполнения циклов, изменяя их стандартное поведение.
break - немедленно завершает циклcontinue - пропускает оставшуюся часть текущей итерации и переходит к следующейОператор break используется для немедленного выхода из цикла, даже если условие цикла еще не стало ложным.
# Выход из цикла при достижении определенного условия
for i in range(10):
if i == 5:
break
print(i)
print("Цикл завершен")
# Поиск элемента в списке
числа = [1, 3, 5, 7, 9, 11, 13]
искомое = 7
for число in числа:
if число == искомое:
print(f"Найдено число {искомое}!")
break
print(f"Проверено число {число}")
else:
print(f"Число {искомое} не найдено")
Оператор continue используется для пропуска оставшейся части текущей итерации цикла и перехода к следующей итерации.
# Пропуск четных чисел
for i in range(10):
if i % 2 == 0:
continue
print(f"Нечетное число: {i}")
# Обработка данных с пропуском некорректных значений
данные = [10, 20, -5, 30, 0, 40, -2]
for значение in данные:
if значение <= 0:
continue # Пропускаем некорректные значения
print(f"Обрабатываем значение: {значение}")
результат = 100 / значение
print(f"Результат: {результат}")
Операторы break и continue работают аналогично и с циклами while.
# Игра "Угадай число"
import random
загаданное_число = random.randint(1, 10)
попытки = 0
while True:
попытки += 1
ввод = input(f"Попытка {попытки}. Введите число от 1 до 10 (или 'выход' для завершения): ")
if ввод.lower() == 'выход':
print("Игра завершена")
break
try:
число = int(ввод)
except ValueError:
print("Пожалуйста, введите корректное число")
continue
if число == загаданное_число:
print(f"Поздравляем! Вы угадали число {загаданное_число} за {попытки} попыток!")
break
elif число < загаданное_число:
print("Загаданное число больше")
else:
print("Загаданное число меньше")
Важно понимать, что break и continue влияют только на самый внутренний цикл.
# Поиск в двумерном списке
матрица = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
искомое = 5
найдено = False
for строка in матрица:
for элемент in строка:
if элемент == искомое:
print(f"Найдено число {искомое}")
найдено = True
break # Выход только из внутреннего цикла
if найдено:
break # Выход из внешнего цикла
# Более элегантное решение с использованием else
for строка in матрица:
for элемент in строка:
if элемент == искомое:
print(f"Найдено число {искомое}")
break
else:
# Продолжаем поиск, если элемент не найден в текущей строке
continue
# Выходим из внешнего цикла, если break был выполнен
break
else:
print(f"Число {искомое} не найдено")
Задание 1:
while True:
число = int(input("Введите число (0 для выхода): "))
if число == 0:
print("Выход из программы")
break
print(f"Вы ввели число: {число}")
Задание 2:
for i in range(1, 21):
if i % 3 == 0:
continue
print(i)
Задание 3:
число = int(input("Введите число: "))
простое = True
if число < 2:
простое = False
else:
for i in range(2, int(число ** 0.5) + 1):
if число % i == 0:
простое = False
break
if простое:
print(f"{число} - простое число")
else:
print(f"{число} - не простое число")
Задание 4:
четные_числа = []
число = 101
while len(четные_числа) < 10:
if число % 2 == 0:
четные_числа.append(число)
число += 1
print("Первые 10 четных чисел больше 100:")
for num in четные_числа:
print(num)