Содержание
Если у вас есть оператор или набор операторов, которые нужно выполнять многократно, повторно друг за другом, вместо их дублирования в коде, используют цикл. Циклы бывают нескольких видов. Их отличие: как определяется, сколько раз будет выполняться этот набор операторов. Набор операторов называют ‘тело цикла’. Есть заголовок цикла — он определяет момент окончания выполнения оператора цикла.
В JavaScript различают 4 вида операторов:
- Цикл перечисления for — выполнение некоторых действий заранее заданное число раз.
- Цикл ‘для каждого’ for in — позволяет перебрать все свойства в объекте.
- Цикл с предусловием while — выполнять тело цикла, пока истинно какое-то условие.
- Цикл с постусловием do … while — выполнять тело цикла, пока истинно какое-то условие.
Цикл перечисления for
Простой пример:
for (var i=0; i<10; i++){ if (i==4) continue; if (i==8) break;}
Однократное выполнение тела цикла называется итерация.
Цикл for in
Данный цикл перебирает все свойства в объекте. Он предназначен для прохода по массивам, коллекциям и объектам.
Простой пример:
for (var prop in navigator){ document.write(prop+" ");}
Цикл с предусловием while
Здесь условие проверяется перед выполнением тела цикла (поэтому предусловие). А если условие ложно (false), то цикл не выполняется ни разу.
Простой пример:
var a=1; while (a<1000){ a*=2; if (a==32) continue; document,write (a+" "); if (a==256) break;}
В круглых скобках идет условие, в фигурных — тело цикла. Этот цикл вычисляет логическое выражение. Если оно истинно, выполняется 1 раз тело цикла. После чего опять вычисляется логическое выражение. Если оно все еще истинно — сно выполняется тело цикла. И так будет, пока логическое выражение не станет false.
Цикл с постусловием do … while
Тело цикла выполняется многократно, пока истинно некое условие. Условие проверяется после выполнения тела цикла (после 1 итерации). Если условие false, цикл все равно выполнится 1 раз.
Простой пример:
var a=1; do{ a*=2; if(a=32) continue; document.write(a+" "); if(a==256) break;} while (a<1000);
Выполняется тело цикла 1 раз. Потом проверяется условие. Если оно true, проходит еще одна итерация. Когда условие станет false, цикл закончится.