Инструкция for
Цикл, начинающийся с инструкции for, часто оказывается более удобным, чем while. Инструкция for использует шаблон, общий для большинства циклов. Большинство циклов имеют некоторую переменную-счетчик. Эта переменная инициализируется перед началом цикла и проверяется в выражении, вычисляемом перед каждой итерацией цикла. И, наконец, переменная-счетчик инкрементируется или изменяется каким-либо другим образом в конце тела цикла, непосредственно перед повторным вычислением выражения.
Инициализация, проверка и обновление – это три ключевых операции, выполняемых с переменной цикла; инструкция for делает эти три шага явной частью синтаксиса цикла. Синтаксис цикла for:
For(инициализация; проверка; инкремент)
Инструкция
или, по другому:
for ( [начальное выражение] ; [условие] ; [выражение обновления] )
{
Код
}
Здесь квадратные скобки лишь указывают на то, что заключенные в них параметры не являются обязательными. Все, что находится в круглых скобках справа от ключевого слова for, называется заголовком оператора цикла, а содержимое фигурных скобок — его телом.
Выражение инициализация вычисляется один раз перед началом цикла. JavaScript также допускает, чтобы выражение инициализация было инструкцией объявления переменной var, поэтому можно одновременно объявить и проинициализировать счетчик цикла.
Выражение проверки вычисляется перед каждой итерацией и определяет, будет ли выполняться тело цикла. Если результат проверки равен true, выполняется тело цикла.
В конце цикла вычисляется выражение инкремента (шага цикла). Обычно это либо выражение присваивания, либо выражение, использующее оператор ++ или --.
Пример цикла, выводящий числа от 0 до 9:
for(var count = 0; count < 10; count++)
document.write(count + "<br>");
Обратите внимание, что этот синтаксис помещает всю важную информацию о переменной цикла в одну строку, делая работу цикла более понятной. Кроме того, помещение выражения инкремента в инструкцию for само по себе упрощает тело цикла до одной инструкции; нам даже не потребовалось ставить фигурные скобки для формирования блока инструкций.
Конечно, циклы могут быть значительно более сложными, чем в этих простых примерах, и иногда на каждой итерации цикла изменяется несколько переменных. Эта ситуация – единственный случай в JavaScript, когда часто применяется оператор «запятая» – он позволяет объединить несколько выражений инициализации и инкрементирования в одно выражение, подходящее для использования в цикле for. Например:
for(i = 0, j = 10; i < 10; i++, j--)
sum += i * j;
Вычислим сумму всех целых положительных чисел от 1 до 15:
var s = l
for (i = 1; i <= 15; i++) {
s = s + i
}
Заметим, что счетчик циклов может быть не только возрастающим, но и убывающим.
/* Вычисляем n! */
var z = 1 // z хранит результат n!
if (n >1) {
for (i = 2 ; i <= n;i++){
z=z*i; }}
Для принудительного (то есть не по условию) выхода из цикла используется оператор break (прерывание). Если вычислительный процесс встречает этот оператор в теле оператора цикла, то он сразу же завершается без выполнения последующих выражений кода в теле и даже выражения обновления. Обычно оператор break применяется при проверке некоторого дополнительного условия, выполнение которого требует завершения цикла, несмотря на то, что условие в заголовке цикла еще не выполнено. Типовая структура оператора цикла с использованием break имеет следующий вид:
for ( [начальное выражение] ; [условие1] ; [выражение обновления] )
{ код
i f (условие2){
Код
Break
}
Код
}
Для управления вычислениями в операторе цикла можно также использовать оператор continue (продолжение). Так же, как и break, этот оператор применяется в теле оператора цикла вместе с оператором условного перехода. Однако, в отличие от break, оператор continue прекращает выполнение последующего кода, выполняет выражение обновления и возвращает вычислительный процесс в начало оператора цикла, где производится проверка условия, указанного в заголовке.
Инструкция for/in
Ключевое слово for в JavaScript также используется в инструкции for/in. Эта инструкция – несколько иной вид цикла, имеющего следующий синтаксис:
Дата добавления: 2015-08-01; просмотров: 798;