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

Условные операторы выделены в особую группу потому, что они занимаются не обработкой данных, а управлением работой самой программы. Грубо говоря, условный оператор может выполнить (или, наоборот, не выполнить) некий участок кода при наступлении (или не наступлении) некоего условия. Таким условием служит значение логической переменной или результат вычисления логического выражения. (Вот зачем нужен логический тип данных!)

Здесь необходимо дать понятие логического выражения. Это обычное выра­жение языка JavaScript, но результатом его вычисления является логическая величина true или false. Логическое выражение содержит операторы логического сравнения, которые будут описаны ниже.

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

Оператор ветвления if-else

Оператор ветвления позволяет вам выполнить некий участок кода при на­ступлении некоего события. Таким событием может служить присвоение переменной какого-либо значения или результат вычисления какого-нибудь выражения, на который так или иначе надо реагировать особым способом.

Оператор ветвления имеет следующий формат:

if (Условие) { Блок "то"} [else... { Блок "иначе"}]

Условие — это логическое выражение, согласно которому интерпретатор принимает решение, какой блок выполнить. Если условие имеет значение true ("истина"), то выполняется блок "то". Если же условие имеет значение false ("ложь"), то выполняется блок "иначе", коль скоро он есть. Если же блок "иначе" отсутствует, выполняется следующее выражение программы.

Примечание

Если результатом условия является null или undefined, то оператор ветвле­ния реагирует на него, как на false.

Рассмотрим несколько примеров.

if (x == 1) {f = 3; h = 4; }

else {f = 33; h = 44; }

Здесь мы сравниваем значение переменной х с единицей и в зависимости от результатов сравнения присваиваем переменным f и h разные значения. Обратите внимание на условие — именно так записывается оператор логического сравнения.

Условие может быть довольно сложным.

if (х == 1 && у > 10) f = 3 else f = 33;

Здесь мы использовали сложное условие, возвращающее true в случае, если значение переменной х равно единице И значение переменной у больше десяти. (Заметьте также, что мы подставили одиночные выражения вместо блоков.)

if (stringl == "Вася") string2 = "Привет, Вася!";

А здесь мы в условии сравниваем строки, а все выражение записано в одной строке.

Оператор ?

Это еще один условный оператор.

{Условие}? {Выражение "то"}: {Выражение "иначе"}

Этот оператор возвращает результат выражения "то", если условие истинно, и результат выражения "иначе" — в противном случае.

а = (f == 2)? b: с + 2;

Если f равно 2, выражение поместит в переменную а значение переменной ь, в противном случае — значение выражения с + 2.

Приоритет этого оператора один из самых низких. Ниже него — только операторы присваивания.

Оператор-переключатель switch

Оператор-переключатель switch может заменить множество условных опера­торов. Он, собственно, и представляет собой множество операторов вида if-eise, объединенных в один.

switch ({Выражение})

{ case {Значение 1}:{Блок 1}[break;]

[case {Значение 2}:{Блок 2}[break;]]

... Другие секции case [default:

{Блок, исполняемый для остальных значений}] }

Сначала вычисляется выражение, помещенное в скобки после ключевого слова switch. После этого его значение сравнивается со значениями, находящимися после ключевых слов case, и в случае равенства исполняется блок кода из соответствующей секции. Например, если значение выражения рав­но "значению 1", выполнится блок кода 1 и т. д. Если же оно не встретилось ни в одной секции case, выполняется блок кода, находящийся в секции default.

Чтобы проиллюстрировать вышесказанное, рассмотрим следующий пример.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: