Циклы

Мы подошли к одному из самых главных средств автоматической обработки информации в JavaScript. С помощью циклов вы сможете выполнять повторяющиеся операции.

Циклы for

Ключевое слово for - это первый оператор, на котором начинающим программистам объясняют назначение циклов. Циклы for требуют использования временной переменной (называемой счетчиком или индексом), которая определяет количество пройденных циклов, выполненных до выхода из повторяющейся структуры. В этих структурах выход из цикла реализуется до достижения счетчиком определенного значения. Простой оператор for выглядит следующим образом:

for (i = 1; i < 10; i++) {

Цикл for состоит из трех основных элементов.

Первый параметр (например i = 1) определяет счетчик и указывает его начальное значение. Этот параметр называется начальным выражением, поскольку в нем задается начальное значение счетчика.

Второй параметр (i < 10) - это условие, которое должно быть справедливым, чтобы цикл выполнялся. Он называется условием цикла.

Третий параметр (i++) - это оператор, который выполняется при каждом последовательном прохождении цикла. Он называется выражением инкремента, поскольку в нем задается приращение счетчика.

После определения всех параметров цикла вводится открывающая фигурная скобка, символизирующая начало тела цикла. Закрывающая фигурная скобка вводится в конце тела цикла. Все операторы, введенные в скобках, выполняются при каждом прохождении цикла.

Как и в случае оператора if, если вы в теле цикла используете только один оператор, добавлять фигурные скобки не нужно.

Простой пример использования цикла for приведен в листинге 14.1.

Листинг 14.1. Пример использования цикла for


1:    for (i=1; i<10; i++) {
2:        document.write("Это строка № ",i,"<BR>");
3:    }
                   

Этот пример использования цикла для отображения сообщения при каждом прохождении цикла. Результат выполнения цикла показан ниже:

Это строка № 1
Это строка № 2
Это строка № 3
Это строка № 4
Это строка № 5
Это строка № 6
Это строка № 7
Это строка № 8
Это строка № 9

Заметьте, что цикл выполняется только девять раз. Это происходит потому, что использовано условие i<10. Когда счетчик принимает значение 10, условие становится ложным. Если необходимо выполнить цикл десять раз, измените это условие на i<=10 или i<11.

Вам придется привыкнуть к тому, что переменная i чаще всего используется как счетчик в циклах. Это одна из традиций программирования, которая своими корнями уходит в древнюю эпоху ископаемых языков программирования, таких как Forth. Вам нет необходимости придерживаться традиции, но использовать все время одну переменную в качестве счетчика цикла предпочтительнее.

Структура цикла for в JavaScript позаимствована из Java, который, в свою очередь, имеет много общего с языком С. Хотя в этих циклах и принято традиционно использовать счетчик, изменяющий свое значение, в качестве условия выполнения цикла можно задавать любую комбинацию логических и условных операторов. Циклы, в которых не используются счетчики, лучше задавать оператором while.

Использование циклов while

Еще одно ключевое слово, с помощью которого в JavaScript организуются циклы, - это while. В отличие от циклов for, цикл while не требует использования счетчиков. Наоборот, они выполняются до тех пор, пока выполняется указанное условие. Тем не менее, если условие не выполняется вообще, то цикл выполняться тоже не будет.

Оператор while содержит в скобках все необходимые параметры. В фигурных скобках традиционно указываются все выполняемые в случае истинности условия операторы. Листинг 14.2 содержит пример использования цикла while.

Листинг 14.2. Простой цикл while


1:    while(total < 10) {
2:    n++;
3:    total+=values[n];
4:    }
                   

В этом цикле также используется счетчик, определяющий номера элементов массива. Вместо того, чтобы прекратиться при достижении счетчиком определенного значения, цикл прерывается, когда сумма значений массива становится больше или равно 10.

Если немного подумать, то можно создать подобный цикл и с помощью оператора for:

for (n=0; total < 10; n++) {
total+=values[n];
}

На самом деле цикл for - это не что иное, как специальный тип циклов while, который автоматически выполняет инициализацию и приращение переменной счетчика. Все циклы for реализуются и с помощью циклов while. Выбор типа цикла лежит полностью на вас. Он в первую очередь определяется поставленной перед вами задачей и ... вашей предрасположенностью к одному из них.

Использование цикла do...while

JavaScript 1.2 содержит еще один тип циклов: do...while. Этот тип циклов сильно похож на своего родителя - цикл while. Единственная разница заключается в расположении условия. Условие в цикле do...while приводится в конце кода. Листинг 14.3 содержит код типичного цикла do...while.

Листинг 14.3. Простой цикл while


1:    do {
2:    n++;
3:    total+=values[n];
4:    }
5:    while(total < 10);
                   

Вы уже наверное заметили, что этот цикл выполняет те же действия, что и цикл листинга 14.2. Но существует маленькое отличие в выполняемых ими операциях. В этом программном коде условие проверяется в конце листинга, а в программном коде листинга 14.2 - в начале. Это означает, что этот цикл будет выполнен по меньшей мере один раз, чего не скажешь о его прародителе.

Как и в циклах for и while, цикл do...while не требует добавления фигурных скобок к телу цикла, если в нем введен всего один оператор.

nextn.bmp (246 bytes)

home.gif (161 bytes)

next.gif (900 bytes)

Сайт управляется системой uCoz