Цикл for зручно використовувати, якщо відома кількість повторень. Але часто цикл необхідно повторювати, поки виконується деяка умова. Цикл while (цикл із умовою) буде повторюватися до тих пір, поки це потрібно.
Як працює цикл while?
Цикл while («поки») буде повторюватися, поки виконується задана умова. Ця умова називається умовою циклу і повертає True або False.
Синтаксис команди:
whіle <умова>:
<тіло циклу>
Тут <умова> — логічний вираз, що є умовою виконання циклу;
whіle <умова>:
<тіло циклу>
Тут <умова> — логічний вираз, що є умовою виконання циклу;
<тіло циклу> — команди, що виконуються під час кожної ітерації.
Виконання команди циклу while починається з обчислення значення логічного виразу — умови циклу. Результатом перевірки умови може бути True або False.
Якщо умова істинна, то виконуються команди тіла циклу й керування повертається на перевірку умови. Якщо ж умова хибна, то виконується команда, яка є наступною після команди while.
Зверни увагу!
Блок команд тіла циклу має бути записаний з відступом від лівого краю!
Приклад:
Проаналізуймо виконання циклу:
При початковому значенні х=7 цикл виконається 3 рази. Коли х набуває значення 10, умова стає хибною і цикл припиняє роботу.
При початковому значенні х=11 цикл не виконається жодного разу.
Приклад:
Задача. Вивести в консоль цілі числа з діапазону [0; 10).
За допомогою циклу for | for i in range(10): print(і) |
За допомогою циклу while | i=0 while i<10: print(і) i = i+1 |
Якщо під час першої перевірки умова виявиться хибною, тіло циклу не виконається жодного разу.
Приклад:
Знайти суму чисел, кратних 4 і менших 100.
a = 0
s = 0
while a < 100:
a = a+4
while a < 100:
a = a+4
s = s + a
print ('s =', s)
Нескінченний цикл
Наведений фрагмент програми ілюструє нескінченний цикл:
num = 0
while num < 20:
print (num)
num = 0
while num < 20:
print (num)
У тілі циклу значення num не змінюється, тому умова num<20 залишається істинною, тобто цикл є нескінченним.
Якщо як умову циклу while задати True, умова ніколи не стане хибною й цикл не завершиться.
Зверни увагу!
Не забувай задавати початкові значення змінних перед оператором циклу!
Приклад:
Будемо будувати відрізки за допомогою циклу while.У циклі продовжується побудова відрізків і поворот Черепашки на 170°, поки Черепашка не повернеться в точку (0,0) (abs(pos()) < 1).
Напишемо програму, в якій людина вводить із клавіатури математичний вираз і отримує відповідь. Для обчислення значення виразу використовують функцію eval(), яка опрацьовує рядок символів так, як і Python IDLE.
Цикл while працює, поки людина не введе q.
Джерела:
Інформатика : підруч. для 6 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2023.