Программа курса:
Цикл while и инструкции break, continue, else
Циклы являются одним из фундаментальных элементов программирования, позволяющих выполнять повторяющиеся действия, что значительно сокращает количество кода и делает программы более гибкими. Цикл while
— это один из базовых циклов, который продолжает выполнение, пока заданное условие истинно. В этой лекции мы детально рассмотрим цикл while
, его особенности, а также такие полезные операторы, как break
, continue
и else
, которые позволяют управлять поведением цикла.
1. Основы цикла while

Цикл while
— это конструкция, которая позволяет выполнять блок кода неоднократно, пока условие остается истинным (True
). Как только условие становится ложным (False
), выполнение цикла прекращается.
Синтаксис цикла while
:
while условие:
блок_кода
- условие: Логическое выражение, которое проверяется перед каждой итерацией цикла.
- блок_кода: Код, который будет выполняться, если условие истинно.
Пример 1: Простой цикл while
count = 0
while count < 5:
print("Count is:", count)
count += 1
Объяснение:
- Переменная
count
инициализируется значением0
. - Перед каждой итерацией проверяется условие
count < 5
. - Если условие истинно, выполняется блок кода внутри цикла, который выводит значение
count
и увеличивает его на1
. - Как только
count
достигает значения5
, условие становится ложным, и цикл прекращается.
Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
2. Бесконечные циклы

Бесконечный цикл — это цикл, который никогда не прекращает выполнение, потому что условие всегда остается истинным.
Бесконечные циклы могут быть полезны в определенных ситуациях, например, в серверах или игровых циклах, но важно предусмотреть способ выхода из таких циклов, чтобы программа не зависала.
Пример 2: Бесконечный цикл while
while True:
print("Это бесконечный цикл")
Этот код будет выводить строку "Это бесконечный цикл" бесконечно, потому что условие True
всегда истинно.
3. Инструкция break
Инструкция break
используется для немедленного завершения выполнения цикла, даже если условие цикла еще истинно. Это полезно, когда нужно прервать выполнение цикла при наступлении определенного события или выполнения условия.
Пример 3: Использование break
count = 0
while count < 10:
if count == 5:
break
print("Count is:", count)
count += 1
Объяснение:
- Цикл должен был продолжаться до тех пор, пока
count < 10
. - Однако, когда
count
достигает значения5
, срабатывает условиеif
, и инструкцияbreak
завершает цикл.
Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
4. Инструкция continue
Инструкция continue
используется для пропуска текущей итерации цикла и перехода к следующей. Это полезно, когда нужно пропустить выполнение определенных шагов в цикле для отдельных значений.
Пример 4: Использование continue
count = 0
while count < 10:
count += 1
if count % 2 == 0:
continue
print("Count is:", count)
Объяснение:
- Цикл увеличивает значение
count
на1
в каждой итерации. - Если
count
четное (count % 2 == 0
), инструкцияcontinue
пропускает текущую итерацию, и вывод не выполняется.
Результат:
Count is: 1
Count is: 3
Count is: 5
Count is: 7
Count is: 9
5. Использование блока else
с циклом while
Блок else
может использоваться с циклом while
, что является уникальной особенностью Python. Блок else
выполняется, когда цикл завершился естественным образом, то есть условие цикла стало ложным. Если цикл был прерван инструкцией break
, блок else
не выполняется.
Пример 5: Использование блока else
с циклом while
count = 0
while count < 5:
print("Count is:", count)
count += 1
else:
print("Цикл завершен")
Объяснение:
- Цикл выполняется до тех пор, пока
count < 5
. - После завершения цикла, когда условие становится ложным, выполняется блок
else
.
Результат:
Count is: 0
Count is: 1
Count is: 2
Count is: 3
Count is: 4
Цикл завершен
Пример 6: Инструкция break
и блок else
count = 0
while count < 5:
print("Count is:", count)
count += 1
if count == 3:
break
else:
print("Цикл завершен")
Объяснение:
- Цикл завершится, когда
count
достигнет3
из-за инструкцииbreak
. - Блок
else
не выполнится, так как цикл был прерван.
Результат:
Count is: 0
Count is: 1
Count is: 2
6. Вложенные циклы while
Циклы while
могут быть вложенными друг в друга. Это означает, что один цикл может находиться внутри другого, и оба цикла будут выполняться по своим условиям.
Пример 7: Вложенные циклы while
i = 1
while i <= 3:
j = 1
while j <= 3:
print(f"i = {i}, j = {j}")
j += 1
i += 1
Объяснение:
- Внешний цикл
i
выполняется трижды. - Внутренний цикл
j
выполняется трижды на каждую итерацию внешнего цикла.
Результат:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
7. Примеры более сложных задач
Задача 1: Поиск простых чисел в заданном диапазоне
Простое число — это число больше 1, которое делится только на 1 и само на себя. Давайте напишем программу, которая найдет все простые числа в диапазоне от 2 до 50, используя цикл while
, break
и else
.
n = 2
while n <= 50:
is_prime = True
i = 2
while i <= n // 2:
if n % i == 0:
is_prime = False
break
i += 1
if is_prime:
print(n)
n += 1
Объяснение:
- Внешний цикл
n
перебирает числа от 2 до 50. - Внутренний цикл
i
проверяет, делится лиn
на какое-либо число от 2 доn // 2
. - Если
n
делится наi
, оно не является простым, и цикл прерывается (break
). - Если цикл завершился без прерывания, число считается простым, и оно выводится.
Результат:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
Задача 2: Игра "Угадай число"
Напишем программу, которая загадывает случайное число от 1 до 100, и предлагает пользователю его угадать. Программа подсказывает, больше или меньше введенное число по сравнению с загаданным, и завершает игру, когда число угадано.
import random
secret_number = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("Угадайте число от 1 до 100: "))
attempts += 1
if guess < secret_number:
print("Загаданное число больше.")
elif guess > secret_number:
print("Загаданное число меньше.")
else:
print(f"Поздравляю! Вы угадали число за {attempts} попыток.")
break
Объяснение:
- Программа загадывает случайное число от 1 до 100.
- Пользователь вводит свои предположения, а программа подсказывает, угадано ли число или нет.
- Если число угадано, цикл прерывается (
break
), и программа сообщает количество попыток.
Цикл while
является мощным инструментом для создания программ, которые выполняют повторяющиеся действия до достижения определенного условия. Инструкции break
, continue
и else
предоставляют дополнительные возможности для управления потоком выполнения программы, делая код более гибким и адаптируемым. Понимание того, как правильно использовать эти конструкции, позволит вам писать более эффективные и понятные программы.