Оглавление

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

Использование оператора switch вместо if…else

 
Оператор выбора switch имеет следующий формат:
switch (<Переменная или выражение>) {
   case <Значение 1>:
      <Выражение 1>;
      break;
   case <Значение 2>:
      <Выражение 2>;
      break;

   default:
      <Выражение>;
}
Перепишем нашу программу определения операционной  системы и используем оператор switch вместо if…else (листинг 35).
 

 

Листинг 35. Использование оператора switch

<b>Какой операционной системой вы пользуетесь?</b><br><br>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<select name="os">
<option value="0" selected>Не выбрано</option>
<option value="1">Windows 98</option>
<option value="2">Windows ME</option>
<option value="3">Windows XP</option>
<option value="4">Другая</option>
</select>
<input type="submit" value="Выбрал">
</form>
<?php
if (isset($_GET['os'])) {
   switch($_GET['os']) {
   case '1':
      echo 'Вы выбрали - Windows 98'; break;
   case '2':
      echo 'Вы выбрали - Windows ME'; break;
   case '3':
      echo 'Вы выбрали - Windows XP'; break;
   case '4':
      echo 'Вы выбрали - Другая'; break;
   case '0':
      echo 'Вы не выбрали операционную систему'; break;
   default:
      echo 'Мы не смогли определить вашу операционную систему';
   }
}
?>

 

 

Вместо логического выражения оператор switch принимает переменную или выражение. В зависимости от значения переменной (или выражения) выполняется один из блоков case, в котором указано это значение. Если ни одно из значений не описано в блоках case, то выполняется блок default. Оператор break  позволяет  досрочно  выйти  из  оператора  выбора  switch.  Зачем  это нужно? Если не указать оператор break в конце блока case, то будет выполняться следующий блок case вне зависимости от указанного значения. Если убрать все операторы break из нашего примера, то в результате (при выборе Windows 98) в окне Web-браузера отобразится следующая надпись:

 

Вы выбрали - Windows 98Вы выбрали - Windows MEВы выбрали - Windows XPВы выбрали - ДругаяВы не выбрали операционную системуМы не смогли определить вашу операционную систему


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

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