Ци

Цикли while у JavaScript

8 вправ

Про концепцію Цикли while

Загальний синтаксис

За допомогою циклу while ми можемо повторно виконувати код, доки виконується певна умова.

Його записують за допомогою ключового слова while, після якого йде умова в круглих дужках, і блоку коду, що містить тіло циклу, у фігурних дужках.

while (condition) {
  // code that is executed repeatedly as long as the condition is
  // true
}

У JavaScript також є цикл do-while. Тут умова перевіряється після виконання тіла циклу. Це корисно, коли умова залежить від обчислень, виконаних у тілі.

do {
  // The code here will always be executed once and then
  // repeatedly while the condition is true.
} while (condition);

Переривання

Усередині тіла циклу можна використати ключове слово break, щоб повністю зупинити виконання циклу. Часто його застосовують разом із true як умовою. Завдяки цьому ми можемо керувати тим, коли цикл має зупинитися, з будь-якого місця в тілі циклу.

const winningNumber = 7;

while (true) {
  const num = readUserGuess();
  if (num === winningNumber) {
    break;
  }
}

Ключове слово break не можна використовувати всередині функції, вкладеної в цикл; приклад можна подивитися в документації MDN.

Продовження

На відміну від break, ключове слово continue зупиняє виконання лише поточної ітерації та переходить до наступної. За допомогою continue часто вдається уникнути обгортання великих частин тіла циклу в умовну конструкцію.

let i = 0;

while (i < 100) {
  i = i + 2;

  if (i % 3 === 0) {
    continue;
  }

  // The code here will only be executed when i was not divisible
  // by 3 in the check above.
}

Нескінченні цикли

Нескінченний цикл (теоретично) виникає тоді, коли умова циклу завжди виконується, а в тілі циклу не досягається жодної інструкції break чи return. Виконання доводиться переривати ззовні. Залежно від середовища, у якому виконується такий код, це відбувається автоматично або потребує ручного втручання.

let i = 0;

while (i < 100) {
  if (i % 3 === 0) {
    continue;
  }

  i = i + 2;
}

// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.

Помітити нескінченний цикл у цьому навчальному прикладі може здатися тривіальним, але зі складнішим кодом це не завжди так просто. Гарна практика: добре подумати, чи наша умова зрештою стане неправдою, чи виконання дійде до інструкції break або return.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Цикли while