Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие по Java Script 1.doc
Скачиваний:
131
Добавлен:
12.02.2015
Размер:
1.44 Mб
Скачать

Инструкция 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] ; [выражение обновления] )

{ код