Цикл while: повторение до выполнения условия

Что такое цикл while и зачем он нужен? 🔄

Цикл while — это инструмент для повторения действий, пока выполняется определённое условие. В отличие от for, который работает с известным количеством элементов, while крутится до тех пор, пока условие истинно.

Пример из жизни:
Представьте, что вы ждёте автобус 🚌. Пока его нет (not bus_arrived), вы продолжаете стоять на остановке. Как только автобус приехал — условие меняется, и вы заходите внутрь.


Базовая структура цикла while

Синтаксис прост:

while условие:
    # Тело цикла — код, который повторяется
    print("Выполняюсь, пока условие True!")

🔄 Как это работает?

  1. Проверяется условие. Если оно True — выполняется тело цикла.
  2. После каждого прохода условие проверяется снова.
  3. Если условие стало False — цикл завершается.

Простой пример: счётчик до 5

count = 1
while count <= 5:
    print(f"Счёт: {count}")
    count += 1  # Увеличиваем count на 1 каждый раз

print("Цикл завершён!")

Вывод:

Счёт: 1  
Счёт: 2  
Счёт: 3  
Счёт: 4  
Счёт: 5  
Цикл завершён!

Разбор:
- Начальное значение count = 1.
- Пока count <= 5, печатаем число и увеличиваем его.
- Когда count становится 6 (6 <= 5 → False), цикл останавливается.


Бесконечный цикл: как не попасть в ловушку? ⚠️

Если условие всегда True, цикл станет бесконечным. Например:

while True:
    print("Бесконечность...")

Как остановить?
- Вручную: Ctrl + C в терминале (если зависло).
- Программно: Используйте break (об этом ниже).


Управление циклом: break и continue

🛑 break — экстренная остановка

Прерывает цикл, даже если условие ещё True.

password = ""
while password != "secret":
    password = input("Введите пароль: ")
    if password == "exit":
        print("Выход...")
        break
    print("Неверный пароль!")
else:
    print("Добро пожаловать!")  # Выполнится, если вышли не через break

Сценарии:
- Ввели secret → цикл завершился сам (else выполнился).
- Ввели exit → сработал break, else пропущен.

continue — пропуск итерации

Переходит к следующей проверке условия, не завершая цикл.

num = 0
while num < 10:
    num += 1
    if num % 2 == 0:  # Чётные числа пропускаем
        continue
    print(num)

Вывод:

1  
3  
5  
7  
9  

Практика: игра «Угадай число» 🎲

Давайте напишем мини-игру, где компьютер загадывает число от 1 до 10, а пользователь пытается его угадать.

import random

secret_number = random.randint(1, 10)
guess = None

while guess != secret_number:
    guess = int(input("Угадайте число от 1 до 10: "))
    if guess < secret_number:
        print("Слишком мало!")
    elif guess > secret_number:
        print("Слишком много!")

print(f"Поздравляем! Вы угадали: {secret_number}")

Логика:
- Пока guess не равен secret_number, запрашиваем ввод.
- Подсказываем игроку ("мало" или "много").
- При угадывании — выводим победу и завершаем цикл.


Когда использовать while вместо for?

while — если не знаете, сколько итераций потребуется (например, обработка ввода пользователя).
for — когда есть последовательность (список, строка, диапазон и т.д.).

Совет от Данилы Бежина (https://www.youtube.com/@DanilaBezhin):

«while — это как спрашивать "Ты готов?" до тех пор, пока не получишь "Да". for — это как перебирать все пункты в чек-листе».


Итог

  • 🔄 Цикл while выполняется, пока условие истинно.
  • 🛑 break останавливает цикл, continue пропускает итерацию.
  • ⚠️ Следите за бесконечными циклами — добавляйте "стоп-условия".
  • 🎯 Используйте while для задач с неизвестным числом повторений.

Теперь потренируйтесь: напишите программу, которая спрашивает у пользователя числа, пока их сумма не превысит 100. Удачи! 🚀

Скрыть рекламу навсегда

🎥 YouTube: программирование простым языком

Канал, где я спокойно и по шагам объясняю сложные темы — без заумных терминов и лишней теории.

Подходит, если раньше «не заходило», но хочется наконец понять.

▶️ Смотреть курсы на YouTube