Операторы цикла

Оператор цикла обеспечивает многократное выполнение блока програмного кода до тех пор, пока не выполнится некоторое условие. В JavaScrip предусмотрены три оператора цикла: for, while и do-while. При создании программ вполне можно обойтись каким-нибудь одним из них, но возникают ситуации, в которых один из операторов более удобен, чем другой.

Оператор for

Оператор for(для) также называют оператором со счетчиком циклов, хотя в нем не обязательно использовать счетчик. Вот синтаксис этого оператора:

for([Начальное_ выражение]; [условие]; [выражение_обновления])

{

код

}

Здесь квадратные скобки указывают на то, что заключенные вних параметры не являются обязательными.

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

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

Оператор работает следующим образом. Сначала выполняется начальное_выражение. Затем проверяется условие. Если оно ложно, то оператор цикла прекращает работу(при этом код не выполняется). В противном случае выполняется код, расположенный в теле оператора for, т.е между фигурными скобками. После этого выполняется выражение_обновления(третий параметр for). Так заканчивается первый цикл или первая итерация цикла. Далее, снова проверяется условие, и все повторяется сначала.

Обычно в качестве переменной начального выражения используют оператор присвоения значения переменной. Например i = 0 или var i = 0. Эту переменную называют счетчиком цикла. В этом случае условие, как правило, представляет собой элементарное выражение сравнения переменной счетчика цикла с некоторым числом, например i<=nMax. Выражение обновления в таком случае просто изменяют значение счетчика, например, i = i +1 или i++.

Рассмотрим пример, где оператор цикла изменяет значение счетчика, выполняя 15 итераций.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Операторы цикла</title>
<script language="JavaScript">
var s=1;
for (i=1; i<=15; i++) {

s=s+i

}
alert(s)

alert(s+i)

</script>
</head>

<body>

</body>
</html>

Где,

i=1-начальное_ выражение;

i<=15-условие;

i++-выражение_обновления;

s=s+i-код

В окне веб-браузера это будет выглядеть ТАК.

Для принудительного выхода из цикла используется оператор break(прерывание). Типовая структура оператора цикла с использованием break имеет следующий вид:

for([Начальное_ выражение]; [условие]; [выражение_обновления])

{

код

if (условие 2) {

код

break

}

код

}

Для управления вычислениями в операторе цикла можно также использовать оператор continue(продолжение). Также, как и break этот оператор применяется в теле оператора цикла вместе с оператором условного перехода. В отличие от break, оператор continue прекращает выполнение последующего кода, выполняет выражение обновления и возвращает вычислительный процесс в начало оператора цикла, где производится проверка условия, указанного в заголовке.

for([Начальное_ выражение]; [условие]; [выражение_обновления])

{

код

if (условие 2) {

код

continue

}

код

}

Оператор while

Оператор цикла while(до тех пор пока) имеет более прстую структуру, чем оператор for, и работает иначе.

while(условие)

{

код

}

При выполнении этого оператора сначала производится проверка условия, указанного в заголовке, т.е. в круглых скобках. Если оно истинно, то выполняется код в теле опратора цикла, заключенного в фигурные скобки. В противном случае код не выполняется. При выполнении кода(завершении первой итерации) вычислительный процесс возвращается к заголовку, где снова проверяются условия.

В операторе while по сравнению с оператором for, выражение обновления записывается в теле оператора, а не в заголовке.

Рассмотрим пример.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
var s=1
i=1
while(i<=15){
s=s+i
i++
}
alert(s)
alert(s=s+i)
</script>

</head>

<body>
</body>
</html>

Где,

i=1-начальное_ выражение;

i<=15-условие(записано в теле оператора while);

i++-выражение_обновления(записано в теле кода);

s=s+i-код

В окне веб-браузера это будет выглядеть ТАК.

Для продолжения управления вычислительным процессом в операторе while, также как в операторе for, можно применять операторы прерывания break и продолжения continue.

Оператор do-while

Оператор do-while(делай до тех пор, пока) представляют собой конструкцию двух операторов, используемых совместно.

do {

код

}

(условие)while

В отличие от оператора while в операторе do-while код выполняется хотя бы один раз, независимо от условия. Условие проверяется после выполнения кода. Если оно истинно, то снова выполняется код в теле оператора do. В противном случае работа оператора do-while завершается. В операторе while условие проверяется в первую очередь, до выполнения кода в теле. Если при первом обращении к оператору while условие ложно, то код не будет выполнен ни когда.

Рассмотрим пример.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
var s=1;
i=1
do {
s=s+i
i++
}
while(i<=15)
alert(s)
alert(s=s+i)
</script>

</head>

<body>
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.

Выражения с операторами

Просто данные (конечные значения) являются выражением языка. Например, число 15, одиноко стоящее в строке програмного кода, является выражением. Последовательность символов, заключенная в кавычки (например "Привет") — тоже выражение. Имя переменной еще один вариант выражения.

Запись содержащая имя переменной, за которой следуют символы операторов присваивания и некоторое значение(например, х = "Привет"), является выражением JavaScript. Запись состоящая из операндов и оператора(например, х+5), также является выражением.

Все перечисленные выше варианты выражения называются элементарными. Тогда записи, содержащие операторы и операнды в виде элементарных выражений, являются выражениями. Например, пусть имеются два элементарных выражения: х+5 и у–5, объединяющая их оператором сложения, является выражением.

Мы можем написать сложные выражения, в которых операторы различных типов могут встречаться несколько раз. Выражения с последовательностью из нескольких операторов вычисляются слева на право, но с учетом приоритета операторов.

Внимание! Среди арифметических операторов наибольшим приоритетом обладают операторы умножения и деления (в т.ч. деление по модулю). Затем следуют сложение и вычитание. Среди логических операторов наибольшим приоритетом обладает отрицание, затем следует логическое И, а наименьшим логическое ИЛИ. Операторы сравнения по приоритету выше логических операторов. Последовательность операторов с одинаковым приоритетом выполняется слева на право.

Рассмотрим пример.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">

s1=2+3*5;
alert(s1);
//результат равен 17, а не 25
s2=2<3 || 3<1 ;
alert(s2);
//результат равен true
s3=2<3 || 3<1 && false;
alert(s3);
//результат равен true
s4=!2<3 * 3<1 && false;
alert(s4);
//результат равен false

</script>

</head>

<body>
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.

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

Рассмотрим пример.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>

<script language="JavaScript">
s=2+3*5
alert(s)
//результат равен 17
s=(2+3)*5
alert(s)
//результат равен 25
s=((2+3)+4*5)/2
alert(s)
//результат равен 12.5
s=2+3+4*5/2
alert(s)
//результат равен 15

</script>

</head>

<body>
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.

При записи кода в одну строку, выражения в блоках необходимо разделять точкой с запятой.


<script language="JavaScript">
x=1
if(!x) { a="Вы ничего не ввели"; alert(a) } else { alert("Все в порядке") }
</script>

В окне веб-браузера это будет выглядеть ТАК.




  • Другие |
назадвверхвперед
Rambler's Top100