Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Циклы while и for в JavaScript

Раздел: 

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

Основное назначение циклов в javascript это повторение однотипных действий  необходимое нам количество раз. По-правильному это называется «итерация» (один прогон цикла).

while

Для повторения кода заданное количество раз обычно используется цикл while. Его синтаксис:

while (условие) {
  // содержимое цикла подлежащее повторению
}

Код внутри фигурных скобок будет повторяться до тех пор, пока условие будет корректно.

Простейший пример цикла while:

var i = 0;
while (i < 3) {
  alert(i);
  i++;
}

После запуска данного цикла мы получим три модальных окна выводящих номер операции.

Для создания бесконечного цикла в качестве условия достаточно задать  булево значение true:

while (true) {
  //наш код
}

Это общепринятый способ создания бесконечного цикла. В прочих случаях (к примеру, если в рассмотренном нами примере убрать  i++) возможен вариант «зависания» скрипта, о чем нам любезно сообщит браузер.

do … while

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

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

Пример do … while

var i = 0;
do {
  alert(i);
  i++;
} while (i < 3);

for

Самым распространенным в практике является цикл for. Его синтаксис:

for (начало; условие; шаг) {
 // код, который будет повторяться
}

То, что задано, как начало цикла выполнится при первой его итерации.

При переходе на следующую итерацию будет проверено условие цикла, в зависимости от результатов которого будет или запущен следующий прогон цикла или произведен выход из него.

В шаге задается выражение, которое будет выполнено после каждого прогона цикла, но до начала следующей итерации.

Пример:

for (var i=0; i<3; i++) {
  alert(i);
}

Обратите внимание, что мы можем определить переменную прямо в условиях цикла. Данный прием несколько упрощает код на практике.

При необходимости мы можем убирать любую часть for:

var i = 0;
for (; i<3; i++) {
	//код для повторения
}
 
for (; i<3;) { //аналог while (i<3)
	//код для повторения
}
 
for (;;) { //аналог while (true) - бесконечный цикл
	//код для повторения
}

Точки с запятой при этом оставлять обязательно. Их отсутствие приводит к ошибке в коде.