Оглавление

12.4. Оператор выбора switch

Оператор выбора switch имеет следующий формат:


switch (<Перемекная или выражение>) { 
	case <3начение 1>: 
	     <Выражение 1>; 
	     break; 
	case <3начение 2>:
	     <Выражение 2 >; 
	break; 
	...
	default:
	     <Выражение>;
}

Перепишем нашу программу и используем оператор switch вместо if...else и ? (листинг 20).

 

Листинг 20. Проверка числа на четность с помощью оператора switch


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Проверка числа на четность</title>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<script type="text/javascript">
<!--
var x = window.prompt("Введите число", "");
if (x==null) {
   document.write("Вы нажали Отмена");
}
else {
   switch ((parseInt(x))%2) {
   case 0:
      document.write("Четное число");
      break;
   case 1:
      document.write("Нечетное число");
      break;
   default:
      document.write("Введенное значение не является числом");
   }
}
//-->
</script>
</body>
</html>

 

Введите число

Итак, оператор switch позволил сделать еще одну дополнительную проверку. Ведь пользователь вместо числа мог ввести строку. А в этом случае функция parseint () вернет значение NaN (Not a Number). Любая арифметическая операция со значением NaN вернет в качестве значения NaN. В предыдущих примерах мы не выполняли эту проверку, и в случае ввода строки, которую невозможно преобразовать в число, функция возвращала фразу "Нечетное число". Что, согласитесь, не верно.
Вернемся к оператору switch. Вместо логического выражения оператор switch принимает переменную или выражение. В зависимости от значения переменной (или выражения) выполняется один из блоков case, в котором указано это значение. Если ни одно из значений не описано в блоках case, то выполняется блок default. Оператор break позволяет досрочно выйти из оператора выбора switch. Зачем это нужно? Если не указать оператор break в конце блока case, то будет выполняться следующий блок case вне зависимости от указанного значения. Если убрать все операторы break из нашего примера, то в результате (при вводе четного числа) в окне Web-браузера отобразится следующая надпись:

Четное числоНечетное числоВведенное значение не является числом


Иными словами, оператор break следует обязательно указывать в конце каждого блока case.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити