Цикл for зручно використовувати, якщо відома кількість повторень. Але часто цикл необхідно повторювати, поки виконується деяка умова. Цикл while (цикл із передумовою) буде повторюватися до тих пір, поки це потрібно.
Як працює цикл while?
<умова> — логічний вираз, що є умовою виконання циклу;
<тіло циклу> — оператори, щовиконуються під час кожної ітерації.
Виконання оператора циклу while починається з обчислення значення логічного виразу — умови циклу. Результатом перевірки умови може бути True або False.
Якщо умова істинна, то виконуються оператори тіла циклу й керування повертається на перевірку умови. Якщо ж умова хибна, то виконується оператор, який є наступним після оператора while.
Якщо умова істинна, то виконуються оператори тіла циклу й керування повертається на перевірку умови. Якщо ж умова хибна, то виконується оператор, який є наступним після оператора while.
Зверни увагу!
Блок операторів тіла циклу має бути записаний з відступом від лівого краю!
Приклад:
Проаналізуймо виконання циклу:
При початковому значенні х=7 цикл виконається 3 рази. Коли х набуває значення 10, умова стає хибною і цикл припиняє роботу.
При початковому значенні х=11 цикл не виконається жодного разу.
Зверни увагу!
Якщо під час першої перевірки умова виявиться хибною, тіло циклу не виконається жодного разу.
Нескінченний цикл
Наведений фрагмент програми ілюструє нескінченний цикл:
num = 0
while num < 20:
print (num)
У тілі циклу значення num не змінюється, тому умова num<20 залишається істинною, тобто цикл є нескінченним.
Якщо як умову циклу while задати True, умова ніколи не стане хибною й цикл не завершиться.
num = 0
while num < 20:
print (num)
У тілі циклу значення num не змінюється, тому умова num<20 залишається істинною, тобто цикл є нескінченним.
Якщо як умову циклу while задати True, умова ніколи не стане хибною й цикл не завершиться.
Зверни увагу!
Не забувай задавати початкові значення змінних перед оператором циклу!
Приклад:
Будемо будувати відрізки за допомогою циклу while.У циклі продовжується побудова відрізків і поворот Черепашки на 170°, поки Черепашка не повернеться в точку (0,0) (abs(pos()) < 1).