Цикл статей «Учебник Javascript».
Следующая статья — «switch в Javascript».
Предыдущая статья — «Операторы ветвления в Javascript: if, “?”».
Циклы используются в тех случаях, когда нужно один и тот же участок кода выполнить несколько раз.
Цикл while
1 2 3 |
while (условие) { // код } |
Код будет выполняться до тех пор, пока условие будет возвращать true. Код должен каким-то образом влиять на условие, иначе цикл может никогда не закончиться.
Примеры:
1 2 3 4 5 |
var n = 0; while ( n < 4) { n++; alert(n); } |
Будет четыре окна сообщения: «1», «2», «3», «4»; После того, как n станет равным четырём условие n < 4 вернёт false и цикл завершиться.
Условие в while преобразуется в boolean. То есть while(n) {} не выполниться ни разу, так как 0 преобразуется в false.
Цикл do while
1 2 3 |
do { // код } while (условие); |
Он отличается от обычного цикла тем, что условие проверяется после выполнения кода. То есть код будет выполнен хотя бы один раз и лишь потом будет проверка условия.
Цикл for
1 2 3 |
for(<инициализация>; <условие>; <инкремент>) { // код } |
В нём сначала выполняется код инициализации. Затем проверяется условие. Если условие вернёт false, то цикл завершается, иначе выполняется код. После кода выполняется инкремент и снова проверяется условие. И так до тех пор, пока цикл не завершится.
Пример:
1 2 3 |
for(var n = 0; n < 4; n++) { alert(n); } |
В результате на экране последовательно увидим «0», «1», «2», «3».
Любую из частей «инициализация», «условие», «инкремент» можно опустить. Можно опустить все три части. Пример:
1 2 3 |
for (;;) { // код } |
Приведённый выше код будет выполняться вечно.
Операторы break, continue
Оператор break завершает цикл. Управление передаётся на следующую после цикла команду. Оператор continue завершает текущую итерацию и переходит к следующей.
1 2 3 4 5 6 7 8 |
var n = 0; while (true) { n++; if (n ==2) continue; // пропускаем двойку. if (n ==4) break; // останавливаемся на четвёрке. alert(n); } |
Приведённый выше код сделает два алерта: «1» и «3». Двойка пропустится, так как по continue перейдём к следующей итерации. На break цикл завершиться.
1 2 3 4 5 |
for (var n = 0; n < 5; n++) { if (n == 2) continue; if (n == 4) break; alert(n); } |
Приведённый выше код выведет сообщения «0», «1», «3».
Метки
Для break и continue поддерживаются метки. Они указывают какой цикл прервать. Можно прервать внешний цикл.
1 2 3 4 5 6 7 8 9 |
outer: for (var n = 0; n < 10; n++) { inner: for (var m = 0; m < 9; m++) { if (m == 6) break outer; // Прервётся цикл по n. if (m == 1) continue outer; // Переход к следующей итерации по n; alert('n='+n+'m='+m); } } |
В целом циклы в Java и Javascript весьма похожи. Практически полностью идентичны, я бы сказал.
Цикл статей «Учебник Javascript».
Следующая статья — «switch в Javascript».
Предыдущая статья — «Операторы ветвления в Javascript: if, “?”».