Перейти к основному содержимому

Цикл while

Цикл while ("пока") позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.

Цикл while используется, когда невозможно определить точное количество повторений цикла.

i = 0 # объявление переменной i для условия цикла  
while i < 5: # ключевое слово 'while' и условие выполнение цикла
# тело цикла
print(i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу

# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4

Цикл while может быть бесконечным.

i = 0  
while True: # условие всегда истинно
print(i)
i += 1

# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
...
>> 999
...
# Это может продолжаться долго...

Оператор break

Выполнение цикла можно прерывать с помощью оператора break.

i = 0  
while 1: # условие всегда истинно
if i == 3: # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print(i)
i += 1

# Вывод:
>> 0
>> 1
>> 2

Оператор continue

Оператор continue начинает повторение цикла заново.

i = 0  
while i < 5:
i += 1 #
if i % 2 == 1: # если значение i нечетно, то вызываем оператор continue
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print(i)

# Вывод:
>> 0
>> 2
>> 4

Как и для цикла for, для цикла while мы можем записать конструкцию else.

x = 1  
while x < 5:
print(x)
x += 1
else:
print('Цикл завершен')

# Вывод:
>> 1
>> 2
>> 3
>> 4
>> Цикл завершен

Примеры

1. Числа от A до B

# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.  

A = int(input('Введите число: '))
B = int(input('Введите число: '))

while A >= B:
print(A)
A -= 1

# Ввод:
>> 12
>> 7
# Вывод:
>> 12
>> 11
>> 10
>> 9
>> 8
>> 7

# Ввод:
>> 5
>> 2
# Вывод:
>> 5
>> 4
>> 3
>> 2

2. Много чисел

# Пользователь вводит числа до тех пор, пока не введет 0.  
# Выведите количество введенных чисел (0 считать не нужно).

n = int(input('Введите число: '))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
# если n равно 0, то выполнение цикла прервется
n = int(input('Введите число: ')) # вводим очередное число
counter += 1 # увеличиваем счетчик

print(f'Количество чисел {counter}')

# Ввод:
>> 1
>> 10
>> 100
>> 1000
>> 0
# Вывод:
>> Количество чисел 4

3. Наименьший делитель

# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.  
N = int(input('Введите число: '))
div = 2

while N % div != 0:
div += 1
print(f'Наименьший делитель равен {div}')

# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2

# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3

# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17