Условные операторы
Любой язык программирования был бы бесполезен, если бы в нем не были предусмотрены те или иные средства ветвления при выполнении программы. В языке JavaScript предусмотрен условный оператор else-if, который позволяет выполнять разные программные строки в зависимости от условия.
Общий вид оператора else-if представлен ниже:
if(условие)
строка 1
[else
строка 2]
Часть оператора, выделенная квадратными скобками, является необязательной. При выполнении этого оператора оценивается условие, заданное в круглых скобках после ключевого слова if. Если в результате оценки условия получилось логическое значение true, выполняется строка 1. Если же получилось значение false, то выполняется строка 2 (в том случае, когда она присутствует.
Оператор if-else может быть вложенным. Учтите, что если в строке 1 или строке 2 необходимо расположить несколько операторов, их следует выделить фигурными скобками:
if(nYourAge < 18)
{
bAccessDenied = true;
szNextPage = “bye18.html”;
}
else if(nYourAge > 99)
{
bAccessDenied = true;
szNextPage = “bye99.html”;
}
else
{
bAccessDenied = false;
szNextPage = “welcome.html”;
}
Здесь вначале оценивается условие (nYourAge < 18). Если содержимое переменной nYourAge меньше 18, переменной bAccessDenied присваивается значение true, а переменной szNextPage - текстовая строка “bye18.html”.
Затем содержимое nYourAge сравнивается с числом 99. Если переменная nYourAge имеет значение, большее чем 99, в переменную bAccessDenied записывается значение true, а переменную szNextPage - текстовая строка “bye99.html”.
И, наконец, если ни одно из двух условий не было выполнено, то есть значение переменной nYourAge находится в интервале от 18 до 99, в переменную bAccessDenied записывается значение false, а переменную szNextPage - текстовая строка “welcome.html”.
Существует также специальный тип условного оператора, который называется оператором ?:. Этот оператор в общем виде записывается так:
выражение ? строка 1 : строка 2
При вычислении оператора ?: вначале оценивается логическое выражение, расположенное в левой части. Если оно равно true, выполняется строка 1, а если false - строка 2.
Ниже мы привели пример использования условного оператора ?: для присвоения значения переменной bAccessDenied в зависимости от содержимого переменной nYourAge:
bAccessDenied =
(nYourAge < 18 nYourAge > 99) ? true : false;
Если значение переменной nYourAge находится в интервале от 18 до 99, переменной bAccessDenied присваивается значение true, а если оно не попадает в этот интервал - false. Традиционное решение этой задачи с помощью оператора else-if заняло бы больше места:
if(nYourAge < 18 nYourAge > 99)
bAccessDenied = true;
else
bAccessDenied = false;
В приведенных выше примерах мы указывали составное условие:
(nYourAge < 18 nYourAge > 99)
В соответствии таблицей старшинства операторов, которую вы найдете ниже в этой главе, оператор вычисляется после операторов < и >. Если вам не хочется разбираться с таблицей старшинства, для указания порядка вычисления используйте скобки:
((nYourAge < 18) (nYourAge > 99))