Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
15.01.2021
Размер:
146.94 Кб
Скачать

Условные операторы

К условным операторам относятся if...else и switch. Они служат для определения набора команд, которые должны быть выполнены в случае, если условие, заданное в таком операторе, истинно. Оператор if выполняет проверку своего условия, после чего, когда результат Д - true, выполняет блок операторов, следующих за условием. Если результат - false, то в случае, когда присутствует часть else, будет выполнен блок операторов из else, в противном случае - ничего. Пример:

if (a>b)

alert(a)

else

alert(b);

В данном примере, когда условие истинно (т.е. а больше чем b), выводится окно со значением переменной а. В противном случае выводится b. Допускается не ставить фигурные скобки если в блоке используется только один оператор, а также в даном случае перед else допускается не ставить ";". Оператор if может быть вложенным. Условный оператор if имеет также сокращенную форму - в виде условной операции "? :".

(a>b) ? alert(a) : alert(b);

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

switch (x) {

case 2: x++;

break;

case 3: break;

case 4: x--;

break;

default:alert ('Число вне допустимых значений!');

}

В этом примере, когда переменная х имеет значения от 2 до 4, для нее предусмотрены определенные действия (здесь - переменная приводится к 3). Если х окажется меньше 2 или больше 4, то сработает оператор, расположенный после default. Оператор break (обрыв) заставляет интерпретатор перейти к той части программы, что расположена за пределами переключателя, в противном случае будут выполнены все блоки операторов, следующие за первой совпавшей меткой.

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

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

Цикл for имеет следующий синтаксис: for ([начальное значение;][условие;][выражение приращения;]) {}

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

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

var d = 5;

var f = 1;

for (i=l; i <= d; rez++) f=f*i;

alert(f);

В примере с помощью цикла вычисляется факториал для числа 5, который равен 120 (1*2*3*4*5).

С помощью цикла while можно выполнять один или несколько операторов до тех пор, пока верно заданное условие. Его синтаксис имеет следующий вид:

while (условие) {}

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

do {

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

} while (условие);

Когда интерпретатор JavaScript доходит до оператора do...while, то сначала выполняются операторы тела цикла, и уже потом - проверяется условие. Если условие истинно, то цикл повторяется, и так до тех пор, пока условие не станет ложным.

Выход из цикла можно также определить при помощи оператора break. Выполнение цикла будет прекращено в месте вызова этого оператора, а управление будет передано первому оператору, находящемуся после цикла. Например:

var i=0;

do {

i++;

if (i>10000) break;

} while (true);

Здесь мы определили бесконечный цикл (его условие всегда истинно), который будет прерван после того, как переменная i превысит указанное в условии if значение.

Иногда бывает необходимо перейти к следующему шагу цикла досрочно, пропустив часть операторов. Для этих целей в языке JavaScript имеется оператор continue. В отличие от break, этот оператор не завершает цикл, а заставляет интерпретатор досрочно перейти к новой проверке условия цикла. Рассмотрим эту ситуацию на примере. Допустим, что нам надо получить список чисел, на которые число 100 делится без остатка:

var i = 0, j = 100;

while (i<j) {

i++;

if (j%i != 0) continue;

alert(i) ;

}

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