Как и в любом другом языке программирования очень важными являются операторы создания циклов. Циклы бывают нескольких типов: с предусловием, с постусловием и заданными параметрами. В JavaScript реализованы только два типа циклов: с предусловием и заданными параметрами.
Цикл с предусловием в данном языке записывается следующим образом:
while (условие) { //..блок операторов.. };
Цикл выполняет блок операторов до тех пор пока условие цикла принимает истинное значение.
Пример:
i=0; while (i<10) { document.writeln("<br>I=",i); i++; };
Данный пример напечатает 10 строк от "I=0" до "I=9".
Цикл с параметрами записывается следующим образом:
for (нач_знач;условия;приращение) { //..блок операторов.. };
Данный цикл выполняется заданное количество раз. Начальные значения переменных цикла задаются выражением нач_знач. Условия задают условия выхода из цикла и записываются в виде логических выражений. Выражение приращение задает изменение параметров цикла за одну итерацию.
Пример:
for (k=1;k<10;k+=2) { document.writeln("<br>K=",k); }; for (i=0,j=2;i<10,j<5;i++,j++) { document.writeln("<br>I=",i," J=",j); };
Эти два цикла демонстрируют работу цикла с параметрами. Оба они могут быть реализованы с помощью while. Например аналогичный код для второго цикла будет следующим:
i=0; j=2; while ((i<10)&&(j<5)) { document.writeln("<br>I=",i," J=",j); i++; j++; };
При этом, если используется несколько переменных в цикле, то условием считается логическое И от всех условий. В данном примере будет выведен следующий результат:
I=0 J=2 I=1 J=3 I=2 J=4Для более удобной работы с циклами в язык были введены операторы прерывания цикла и его продолжения. Оператор прерывания цикла записывается в виде break. Он сразу прерывает работу цикла и передает управление блоку операторов следующих за циклом. Пример:
i=2; while (i<10){ if (i>5) break; document.writeln("<br>I=",i); i++; }; document.writeln("<br>End !");
В данном примере будет выведено следующее:
I=2 I=3 I=4 I=5 End !
Для продолжения цикла, т.е. перехода к следующей итерации предназначен оператор continue. Пример:
i=2; while (i<5){ if (i==3){ i++; continue; }; document.writeln("<br>I=",i); i++; };
Результат данного примера будет таким:
I=0 I=1 I=2 I=4 I=5
Обратите внимание, что перед вызовом continue следует правильно изменить параметр цикла. Если этого не сделать, то при следующей итерации цикл будет работать с предыдущим значением и произойдет зацикливание. Но это только в случае с оператором while, т.к. в операторе for интерпретатор языка сам заботится об изменении параметра цикла.
Последним важным оператором языка является условный оператор, который позволяет разветвить программу в зависимости от какого-либо условия. Записывается он следующим образом:
if (условие) { // код для истинного условия } else { // код для ложного условия };
Данный оператор также может быть записан более коротко без использования else:
if (условие) { // код для истинного условия };
Этот оператор используется очень часто и даже является составной частью циклов.