Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16 Закрытый исходный код.doc
Скачиваний:
3
Добавлен:
22.12.2018
Размер:
439.81 Кб
Скачать

30 Циклы Java Script

Цикл - это набор команд, которые повторяются, пока указанное условие не выполнено. JavaScript поддерживает две формы цикла: for и while. Кроме того, операторы break и continue, используются вмести с циклами.

Другой оператор, for...in, выполняет утверждения несколько раз, но используется для манипулирования объекта. См. Оператор манипулирования объекта.

Оператор for

Цикл for повторяет утверждения, до тех пор пока указанное условие ложно. Цикл for JavaScript for подобен циклу for Java и традиционному циклу for языка C. Оператор for выглядит следующим образом:

for ([initial-expression;]

[condition;]

[increment-expression])

{

statements

}

Последовательность выполнения цикла for следующия:

1. Выражение initial-expression служит для инициализации переменной счетчика, которую можно создать с помощью опреатора var.

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

3. Выражение increment-expression вообще используется для изменения значения переменной счетчика.

4. statements вычисляют и контралируют возвращение шага 2.

Пример. Следующая функция содержит оператор for, который считает число выбранных элементов в списке (объект select позволяет выбрать несколько элементов). Оператор for объявляю переменный i и присваевает ей ноль. Если i меньше чем число элементов в объекте select, то выполняется оператор if, и i увеличевается на 1 после каждой итерации.

<SCRIPT>function howMany(selectObject) {

var numberSelected=0

for (i=0; i < selectObject.options.length; i++)

{

if (selectObject.options[i].selected==true)

numberSelected++

}

return numberSelected}

</SCRIPT>

<FORM NAME="selectForm">

<P><B>Choose some music types, then click the button below:</B>

<BR><SELECT NAME="musicTypes" MULTIPLE>

<OPTION SELECTED> R&B

<OPTION> Jazz

<OPTION> Blues

<OPTION> New Age

<OPTION> Classical

<OPTION> Opera

</SELECT><P><INPUT TYPE="button" VALUE="How many are selected?"

onClick="alert ('Number of options selected: ' + howMany(document.selectForm.musicTypes))">

</FORM>

Оператор while повторяет цикл, пока указанное условие равно истинна. Оператор while выглядит следующим образом:

while (condition)

{statements}

Если условие становится ложным, то утверждения внутри цикла прекращают выполняться.

Условия проверяется только тогда, когда утверждения в цикле были выполнены, и цикл должен повториться.

Пример 1. Следующий опрератор while повторяется, до тех пор пока n - меньше чем три.

n = 0

x = 0

while( n < 3 )

{ n ++ x += n}

Каждая итерация цикла увеличивает n и прибавляет его к x. Следовательно, x и n принемают следующие значения:

После первой итерации: n = 1 и x = 1

После второй итерации: n = 2 и x = 3

После третьей итерации: n = 3 и x = 6

После завершения третьей итерации, условие n<3 больше не истинно, поэтому цикл прекращается.

Пример 2: бесконечный цикл. Проверьте, что условие в цикле в конечном счете становится ложным; иначе, цикл никогда не прекратиться. Утверждения в следующем цикле while выполняются бесконечно, потому что условие никогда не становится ложным:

while (true)

{

alert("Hello, world")

}

Оператор break завершает текущий цикл while или for и передает управление программы первому опретору после цикла. Оператор break выглядит следующим образом:

Пример. Следующая функция имеет оператор break, который завершает цикл while, когда i равно 3, и затем возвращает значение 3 * x.

function testBreak(x) {

var i = 0

while (i < 6) {

if (i == 3)

break

i++ }

return i*x}

Оператор continue передает управление оператору проверки истинности условия в цикле while и оператору обновления значения счетчика в цикле for, и продолжает выполнение цикла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]