Цикли
Раніше на курсі ми з вами познайомились з умовами в мові JavaScript. Ми також дізнались, що для різних задач можна використовувати різні умовні конструкції. Для простих перевірок — if… else. А для випадків з багаточисленними можливими сценаріями — switch. Також ми з’ясували, що для створення об’єднаних умов існують спеціальні логічні оператори — НЕ, АБО та І.
Самі собою умови — дуже потужні інструменти програмування. Але ще потужнішими вони стають, коли до них доєднуються цикли!
Що таке цикли
Що таке цикли, ми всі добре знаємо, адже в реальному житті нас оточують повсюди. Типовий приклад циклу — тижні. Кожен тиждень складається з семи днів, що слідують один за одним, а після завершення сьомого дня — починається новий тиждень.
Рік — це теж цикл з 12 місяців. День — так само є циклом, що складається з 24 годин. Робочий графік — теж цикл. Ви починаєте робочий день у певний час, виконуєте певні задачі в межах посадових інструкцій, завершуєте день.
Так само і в JavaScript, цикли — це такі конструкції коду, що дозволяють виконувати типові дії декілька разів. І це дуже потужний засіб автоматизації!
Скажімо, якщо вам потрібно перелічити всі числа від одного до п’яти, ви, звісно, можете просто записати їх всі текстом в змінну:
Але що як умова завдання раптом зміниться? І замість п’яти потрібно буде порахувати до іншого числа — скажімо, чотирнадцяти? Доведеться змінювати наш код. Може, додати ще декілька чисел в запис нескладно. Але що як кінцеве число буде великим — скажімо, мільйон?
Вручну вносити таку кількість послідовних чисел — така собі задача. Скільки часу вона відніме — порахувати складно. Не кажучи вже про те, що коли задачу виконує людина, існує висока ймовірність помилки. Це називається «людським фактором».
А от за допомогою циклу така задача вирішується швидко і без помилок.
Цикл while
Найпростішим циклом є while (від англійського «допоки»).
Буквально верхній рядок коду означає: «Допоки вираз в дужках є істинним, виконуватимуться інструкції з блока циклу». Або ж, простішою мовою: «Доки умова циклу дотримана, виконуватимуться і задані в циклі інструкції».
Оці інструкції ще називаються тілом циклу, а їхнє виконання — ітерацією, або повтором.
Після того, як інструкція виконана, інтерпретатор JavaScript повертається до умови циклу, і перевіряє її ще раз. І якщо вона все ще є істинною, знову виконує інструкції в тілі циклу. І так — допоки вираз в дужках не стане хибним.
Якщо вираз в дужках ніколи не стане хибним, тоді цикл ніколи не припинить виконуватись. Такі цикли називаються нескінечними. Існує декілька випадків, коли вони можуть бути корисними, але зазвичай така поведінка циклу є помилкою.
Розгляньмо простий приклад циклу while. В ньому ми бачимо простий код, що рахує від одного до п’яти: