Квинт Игорь
Шрифт:
Оператор switch позволяет сравнить значение с множеством других. Этого же эффекта можно достичь с помощью нескольких операторов if, но оператор switch позволяет создавать наглядный и краткий код. Этот оператор дает возможность предусмотреть операторы по умолчанию, которые выполняются, если не найдено ни одно соответствие:
switch (выражение)
{
case значение1:
операторы
case значение2:
операторы
..
default:
операторы
}
Допустим, необходимо, чтобы сценарий переводил названия животных с английского языка на русский (листинг 11.13).
<html>
<head>
<title>Пример работы оператора switch</title>
<script>
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);
</script>
</head>
<body>
</body>
</html>
Этот код позволяет получить перевод названия одного из трех животных (рис. 11.13).
Рис. 11.13. Пример работы оператора switch
Обратите внимание на оператор break, который позволяет закончить работу оператора switch, так как иначе будет выполняться оставшийся код в операторе switch.
Операторы цикла
Для многократного выполнения кода используют операторы цикла. Кроме того, циклы предоставляют удобные средства для манипулирования массивами.
Оператор for служит для создания цикла. Он имеет следующий синтаксис:
for (выражение инициализации; выражение условия; выражение цикла)
{
операторы
}
Выражение инициализации обычно служит для задания начального значения счетчика цикла. Выражение условия позволяет прекратить выполнять цикл, когда условие перестанет выполняться, то есть примет значение false. Выражение цикла обычно осуществляет инкремент или декремент счетчика цикла. Любое из этих выражений может быть пропущено, но соответствующая точка с запятой должна стоять.
В листинге 11.14 представлен код, позволяющий найти факториал числа – n!=1*2*3*..*n.
<html>
<head>
<title>Факториал с помощью оператора for</title>
<script>
var f=1;
var x=prompt ("Введите число","5");
x=+x;
for(var i=1;i<=x;i++)
{
f=f*i;
}
alert(f);
</script>
</head>
<body>
</body>
</html>
В этом коде организуется цикл от 1 до x, при этом для простоты введенное значение не проверяется на допустимость, поэтому можно, например, получить значение Infinity (бесконечность) при большом значении x.
Оператор while сходен с оператором for, но он не производит инициализацию и инкремент счетчика в своем объявлении. Синтаксис этого оператора следующий:
while (выражение условия)
{
операторы
}
Если выражение условия в цикле while сразу ложно, то операторы не выполнятся ни разу.
В листинге 11.15 представлен код, позволяющий найти факториал с помощью цикла while.
<html>
<head>
<title>Факториал с помощью оператора while</title>
<script>
var f=1;