Цикл while в JavaScript

Основная цель в JavaScript while — повторно запускать определенный фрагмент кода, снова и снова. Он очень похож на цикл for с одним важным отличием. Позвольте мне занять немного вашего времени, чтобы объяснить разницу между этими двумя типами циклов.

В чем разница между циклами while и for?

Разница между этими циклами заключается в том, как они прекращают выполнение фрагмента кода.

Цикл for выполняется установленное количество итераций. Мы точно знаем, сколько раз цикл выполнит заключенный в его теле фрагмент кода.

В while все происходит по-другому. Цикл while JavaScript выполняется, пока истинно определенное условие. После того, как условие расценивается как ложное, тогда цикл while прекращается.

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

Плюсы и минусы цикла while

Позвольте мне начать с рассмотрения единственного существенного «минуса» цикла while. Он может работать вечно!

Если окажетесь в ситуации, когда цикл while продолжит выполняться до бесконечности, то ваша программа застрянет (или зависнет). Тогда нужно закрыть браузер, чтобы прервать выполнение кода JavaScript.

Должен отметить, что неуправляемый в JavaScript while loop обычно не работает вечно. Потому что, как программисты мы всегда обязаны удостовериться, что в какой-то момент условие нашего цикла while станет false.

Теперь относительно «плюсов» — они весьма очевидны. While будет непрерывно работать до тех пор, пока выполняется условие. В качестве примера использования цикла while можно привести запрос к пользователю ввести данные. Цикл будет предлагать ввести данные снова и снова, пока пользователь не введет корректные данные.

Синтаксис цикла while

Синтаксис циклов for и while очень похож.

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

Вот, как должен выглядеть код:

while ([condition(s)])  
{  
// вставьте сюда код, который должен выполняться циклично  
}

Самая трудная часть — это определить, какое условие или условия нужно поместить в цикл, чтобы он работал должным образом.

Следует помнить, что пока условие является истинным, цикл будет продолжать работать. Давайте рассмотрим пример использования в JavaScript while.

Пример цикла while

Предположим, что мы хотим попросить пользователя ввести число от 1 до 10. Но что произойдет, если он введет неправильное число?

В этом случае мы должны попросить его снова ввести значение, и проверить, соблюдено ли условие (введено ли число от 1 до 10).

Это случай, в котором цикл for с треском бы провалился. Потому что мы не можем заранее знать, сколько раз нам придется попросить пользователя ввести корректное число. В таком случае к нам на помощь приходит цикл while.

Вот как может выглядеть наш код:

var theNumber = prompt("Пожалуйста, введите число от 1 до 10.");  
  
while (theNumber < 1 || theNumber > 10 || isNaN(theNumber))  
{  
  theNumber = prompt("Введено неправильное значение, пожалуйста, введите число от 1 до 10!");  
}  
  
alert("Отлично! Вы ввели число: " + theNumber);

Стоит отметить, что в приведенном выше примере у нас используется три отдельных условия в цикле while JavaScript.

Вот эти три условия: theNumber 10 || isNaN(theNumber). Они указывают следующее:

  • ЕСЛИ theNumber меньше 1, ИЛИ;
  • ЕСЛИ theNumber больше 10, ИЛИ;
  • ЕСЛИ theNumber — это НЕ число, то продолжить цикл.

Так как мы используем оператор ИЛИ (||) между всеми условиями, это означает, что если любое из условий истинно, то общее условие цикла while будет оценено как true, и выполнение цикла будет продолжено.

Только в том случае, если все три условия оцениваются как false, общее условие цикла while будет оценено, как false, и он будет остановлен.

Заключение

JavaScript while loop является единственным реальным циклом в языках программирования. for является просто частной разновидностью цикла while.

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

var counter = 0;  
  
while (counter < 10)  
{  
  counter = counter + 1;  
  console.log("The counter is currently at: " + counter);  
}

Код будет повторяться ровно 10 раз, не больше и не меньше. Это в точности так, работает цикл for.

Не нужно бояться использовать JavaScript while. Так как без него множество приложений просто не работали бы должным образом!

Я надеюсь, вам понравилась эта статья.

Перевод статьи «While Loop in JavaScript» был подготовлен дружной командой проекта Сайтостроение от А до Я.