В предыдущих статьях были рассмотрены операторы и правила написания кода для JavaScript, но все они выполняют только определенное вычисление. А что если потребуется выполнить многократное повторение некоторого участка кода? Для этого существуют циклы, с помощью которых можно выполнять однотипное действие заданное количество раз. В этой статье будут рассмотрены виды циклов и правила применения циклов в JavaScript, а также директивы, которые расширяют их функции.
Цикл — это определенная последовательность операторов, которая повторяется до тех пор, пока заданное условие не станет ложным. В JavaScript существуют 3 вида циклов: for, while и do...while.
Цикл For
Наиболее часто применяется именно этот цикл, в записях имеет вид:
// сам цикл
} где
- начало - условие с которого начинается выражение
- условие - при котором вычисляется заданная запись
- шаг - период, с которым вычисляется выражение
Пример
alert(x);
}
Результатом будут все значения от 5 (т.к. начало равно 5) и до 10, но не включая 10, т.к. условие строго меньше 10, а также шаг равен 1. Аналогичным образом, если x--, то будет происходить вычитание с шагом 1.
Значение шага можно менять. Например, чтобы установить шаг 5, то будет: x+=5
В этом цикле можно убрать любую составляющую, например, условие. Тогда запись будет иметь вид: for (x=5; ; x++) Результатом будут бесконечный цикл, т.к. для него не существует ограничения. Таким образом можно убрать все составляющие, однако, точки с запятой (;) должны сохраняться.
Цикл While
Этот цикл имеет схожести с предыдущим и имеет вид:
// код цикла
}
Здесь пока условие соответствует определенному циклу, оно будет выполняться.
Пример
while (x > 0) {
alert(x);
x--;
}
Результатом будут 5,4,3,2,1... так как в условии задано ограничение до 1, а шаг в коде цикла установлен в обратном порядке. Если в коде цикла будет отсутствовать шаг, то результат будет выводиться бесконечно. Для задания бесконечного цикла можно использовать запись: while(true) { // код цикла }
Цикл do..while
Используется редко, однако имеет право на существование:
// код цикла
} while (условие);
Таким образом, здесь меняется последовательность - сначала выполняется цикл, а потом проверяется условие.
Пример
do {
alert(x);
x--;
} while( x > 0);
Решение будет аналогичным с циклом While, поэтому его меньше применяют.
Управлять циклами можно с помощью специальных директив: break и continue
Директива Continue
Запрещает вывод заданных значений, при этом цикл продолжает выполняться.
Пример
if (x % 4 == false) continue;
alert(x);
}
В результате будут выводиться все значения, кроме тех, которые кратные 4 - это 8,12,16 и 20. А если убрать значение ==false, то результат будет обратный и будут показаны только те значения, которые кратны 4.
Кроме кратности можно запрещать вывод определенного числа: x!=8 == false - исключает вывод 8. Поэкспериментируйте с числами и условиями.
Директива Break
Обеспечивает выход из цикла в заданный момент.
Пример
while (true) {
x+=5;
if (x==20) break;
alert(x); }
Таким образом, как только значение достигло 20, цикл прерывается и скрипт завершает свою обработку. Чтобы вывести последний результат, можно в конце после фигурной скобки добавить: alert ('Последняя x = '+ x );