Программа курса:
Цикл 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 предоставляют дополнительные возможности для управления потоком выполнения программы, делая код более гибким и адаптируемым. Понимание того, как правильно использовать эти конструкции, позволит вам писать более эффективные и понятные программы.