Рассмотрим пример. Допустим, функция f(x) определяется следующим образом:
Для нахождения значения этой функции на определенной точке можно воспользоваться кодом, приведенным в листинге 11.11.
var x, y;
//Запрашиваем значение x
x=prompt ("Введите значение x","0");
//Преобразуем введенную строку в число
x=+x;
//Определяем значение функции
if (x<0){
y=x+10;
}
if ((x>=0)&&(x<=5)){
y=x*x+4;
}
if (x>5){
y=5/x;
}
alert("Функция f("+x+")="+y);
С помощью этого кода можно легко найти значение данной функции в любой точке (рис. 11.12).
Рис. 11.12. Определение значения функции с помощью оператора if
Часто удобно использовать полную форму условного оператора if..else. С его помощью можно задать действия, которые необходимо выполнить, если логическое выражение равно false:
if (логическое выражение)
{
операторы1
}
else
{
операторы2
}
Более того, можно совместить else с другим оператором if. В этом случае можно рассмотреть несколько альтернативных вариантов и выполнить соответствующие операторы:
if (логическое выражение1)
{
операторы1
}
else if (логическое выражение2)
{
операторы2
}
else
{
операторы3
}
Теперь перепишем предыдущий сценарий для определения функции с помощью оператора if..else (листинг 11.12).
var x, y;
//Запрашиваем значение x
x=prompt ("Введите значение x","0");
//Преобразуем введенную строку в число
x=+x;
//Определяем значение функции
if (x<0) y=x+10; //при x<0
else if (x>5) y=5/x; //при x>5
else y=x*x+4; //при 0<=x<=5
alert("Функция f("+x+")="+y);
Как видно из данного кода, фигурные скобки необязательны, если выполняется только один оператор. Однако рекомендуется всегда использовать их для облегчения чтения кода. Обратите внимание, что в целях оптимизации второй проверкой проверяется условие x>5.
Оператор switch позволяет сравнить значение с множеством других. Этого же эффекта можно достичь с помощью нескольких операторов if, но оператор switch позволяет создавать наглядный и краткий код. Этот оператор дает возможность предусмотреть операторы по умолчанию, которые выполняются, если не найдено ни одно соответствие:
switch (выражение)
{
case значение1:
операторы
case значение2:
операторы
..
default:
операторы
}
Допустим, необходимо, чтобы сценарий переводил названия животных с английского языка на русский (листинг 11.13).
var trans;
//Запрашиваем название животного
var beast=prompt ("Введите название животного","dog");
//Находим соответствующее название на русском языке
switch (beast)
{
case "dog":
trans="собака";
break;
case "cat":
trans="кошка";
break;
case "cow":
trans="корова";
break;
default:
trans="неизвестное животное"
}
alert(beast+" – "+trans);
Этот код позволяет получить перевод названия одного из трех животных (рис. 11.13).