Иллюстрированный самоучитель по Adobe GoLive 6

Структура JavaScript

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

if (x - 2) x *= 7;

Данный фрагмент кода проверяет значение переменной х. Если это значение равно двум, то оно увеличивается в семь раз. Но умножение это будет производиться тогда и только тогда, когда значение переменной равно двум. Проверка логических условий, как мы видим, производится при помощи ключевого слова if.

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

if ((x = 2) && (y < 0)) x *= 7;

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

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

Таблица 7.1. Операторы сравнения.

Оператор Значение
== Точное равенство
! = Неравенство
> Больше
>= Больше или равно
< Меньше
=< Меньше или равно

Естественно, эти операторы могут использоваться для сравнения, как числовых значений, так и строковых. Если необходимо сравнить строковые значения по соотношениям "больше – меньше", то сравнение производится посимвольно, начиная с начала строки. Чем символ ближе к концу алфавита, тем он "больше".

При выполнении условия программа интерпретатор выполняет только одно действие. А что делать, если надо выполнить не один оператор, а несколько? В этом случае необходимо все эти операторы объединить в единый блок. Для этого достаточно заключить все операторы в фигурные скобки, Я как это показано в следующем примере:

if (x == 2) {
    x *= 7;
    y = 1;
}

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

if (x == 2) {
    x *= 7;
    y = 1;
} else {
    y = x;
}

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

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

switch (x) {
case 1:
    {
        Блок, выполнявшей, если х = 1
    }
case 2:
    {
        Блок, выполняемый, если х = 2
    }
default:
    {
        Блок, выполняемый, во всех остальных случаях
    }
}

Смысл действия данного оператора достаточно ясен, но есть один подводный камень. В том случае, если переменная, относительно который мы и выстраиваем весь блок, равна некоторому значению, которое мы указали в операторе, то будет выполнен весь код от начала выполнения до конца оператора switch. То есть, в нашем примере, если значение переменной х равно единице, то сначала будет выполнен блок кода для этого значения, затем блок, выполняемый, если значение переменной равно двум, а потом еще и блок, используемый для всех остальных значений. Чтобы избежать этого, следует в конец каждого Шока кода вставлять оператор break. Данный оператор принудительно выводит управления за пределы конструкции, в которой он использовался. С его использованием типичный пример использования оператора-переключателя выглядит приблизительно следующим образом:

switch (x) {
case 1:
    {
        y = x * 2 + z;
        break
    }
case 2:
    {
        y = x * 3 + z;
        break
    }
default:
    {
        y = 0;
        z = 0
    }
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.