Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
31
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

Пример 2‑27

<?php

$score = 86;

if ($score > 92)

{ $grade = "A";

$message = "Отлично";

}

elseif ($score <= 92 and $score > 83)

{

$grade = "B";

$message = "Хорошо";

}

elseif ($score <= 92 and $score > 83)

{

$grade = "B";

$message = "Хорошо";

}

elseif ($score <= 83 and $score > 74)

{

$grade = "C";

$message = "Удовлетворительно";

}

elseif ($score <= 74 and $score > 62)

{

$grade = "D";

$message = "неудовлетворительно";

}

else

{

$grade = "F";

$message ="Хуже некуда!";

}

echo "Оценка = $message, Уровень= $grade";

?>

        1. Оператор переключения "switch" ("выбор")

При проверке большого количества условий даже использование оператора ifelseif может стать утомительным. В таких случаях удобнее применять оператор switch, предназначенный для сравнения заданного выражения с различными вариантами значения этого выражения. В зависимости от результатов сравнения будут выполняться различные действия.

На русский язык название данного оператора можно перевести как «переключатель». И смысл у него именно такой. В зависимости от того, какое значение имеет переменная, он переключается между различными блоками действия, switch очень похож на оператор if...elseif...else или набор операторов if.

Конструкция « выбор»

выбор

  при условие 1: действия 1

  при условие 2: действия 2

  . . . . . . . . . . . .

  при условие N: действия N

всё

Конструкция «выбор—иначе»

выбор

  при условие 1: действия 1

  при условие 2: действия 2

  . . . . . . . . . . . .

  при условие N: действия N

  иначе действия N+1

всё

Рис. 2-2 a. Два варианта оператора SWITCH

Рис. 2‑4 b. Семантика оператора SWITCH

Оператор "switch" позволяет реализовать многонаправленное ветвление в программе и имеет следующий вид:

switch ( выражение )

{

case константа_1:

инструкция_1;

...

break;

case константа_2:

инструкция_2;

...

break;

...

default:

инструкция_N;

...

break;

}

Значение "выражения" должно иметь тип char, byte, short, int или string. Тип "констант" должен быть совместим с типом "выражения", а их значения должны быть различными.

Семантика оператора “switch” может быть определена посредством словесного описания Рис. 2 -4 a, а также блок-схемы, изображенной на Рис. 2 -4 b: последовательно значение "выражения" сравнивается со значениями "констант". Выполняются инструкции той ветви, для которой значения совпали. Если ни одного совпадения не было, то выполняются инструкции ветви "default".

Таким образом, этот оператор позволяет реализовать многонаправленное ветвление.

Структуру конструкции «выбор – иначе» с помощью ключевых слов можно записать следующим образом:

switch (выражение или переменная условия)

{

case значение1:

блок_действий1

[break;]

case значение2:

блок_действий2

[break;]

...

[default:

блок_действий_по_умолчанию]

}

В отличие от if, здесь значение выражения условия не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение2 и т.д.).

Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок_действий – от двоеточия после совпавшего значения до конца switch или до первого оператора break, если таковой найдется.

Если значение выражения не совпало ни с одним из вариантов, то выполняются действия по умолчанию (блок_действий_по_умолчанию), находящиеся после ключевого слова default.

Выражение в switch вычисляется только один раз, а в операторе elseif – каждый раз, поэтому, если выражение достаточно сложное, то switch работает быстрее.

Следует иметь в виду, что после ключевого слова case могут располагаться ВЫРАЖЕНИЯ только целого, вещественного или строкового типа.

Если требуется выполнить одно и то же действие при нескольких дискретных значениях выражения-условия, то можно использовать несколько подряд идущих конструкций case. Происходит имитация логической операции ИЛИ на совпадение с одним из их значений.

Варианты использования SWITCH оператора представлены в примере Пример 2 -28.