Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ Лабораторная работа №7(php).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
75.26 Кб
Скачать

3. Инструкция switch-case (конструкция выбора)

Нами осталась незамеченной очень важная конструкция — switch-case. Данная конструкция предназначена для выбора действий, в зависимости от значения указанного выражения. Конструкция switch-case чем-то напоминает оператор if-else, который, по сути, является ее аналогом. Конструкцию выбора нужно использовать, если предполагаемых вариантов много, скажем, больше 5, и для каждого варианта нужно выполнить специфические действия. В этом случае использовать оператор выбора if-else просто неудобно.

Синтаксис switch-case таков:

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

{

case значение1 : команды_1; [break;] ...

case значениеN : команды_N; [break;]

[default: команды_по_умолчанию; [break;]]

}

Альтернативный синтаксис конструкции выглядит так:

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

case значение1: команды1; [break;] ...

case значением N: команды_N; [break;]

[default: команды_по_умолчанию; [break;]]

endswitch;

Работает эта конструкция следующим образом:

1. Вычисляется значение выражения.

2. Просматривается набор значений. Пусть значение_1 равно значению выражения, вычисленного на первом шаге. Если не указан оператор break, то будут выполнены команды i, i+1, i+2, ... ,N. В противном случае (есть break) будет выполнена только команда с номером i.

3. Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.

Небольшой пример:

<?

$age=21;

switch ($age)

{

case 20 : echo "Вам двадцать лет\n";

case 21 : echo "Вам двадцать один год\n";

case 22 : echo "Вам двадцать два года\n";

default: echo "Вам $age лет\n";

}

?>

Если переменная $аgе равна 21, тоща будут выведены строки:

Вам двадцать один год

Вам двадцать два года

Вам 21 лет

Ясное дело, что нам нужно, чтобы программа вывела только одну строку, поэтому нужно использовать операторы break:

<?

$age=21;

switch ($age)

{

case 20 : echo "Вам двадцать лет\n"; break;

case 21 : echo "Вам двадцать один год\n"; break;

case 22 : echo "Вам двадцать два года\n"; break;

default: echo "Вам $age лет\n"; break;

}

?>

Если кто-то знает язык Pascal, то в нем была подобная конструкция case, позволяющая указывать диапазоны значений:

case (age)

10..20 : writeln('BaM от 10 до 20 лет');

end;

В PHP такую возможность можно реализовать так (диапазон 20...22):

<?

$age=21;

switch ($age)

{

case 20 :

case 21 :

case 22 : echo "Вам от 20 до 22\n"; break;

}

?>

4. Варианты заданий

Распечатать на экране монитора таблицу символов, используя только циклы (без массивов)

Вариант 1

A D G J M

M D G J M

M J G J M

M J G D M

M J G D A

Вариант 2

A B C D E F G H I

B C D E F G H

C D E F G

D E F

E

Вариант 3

I

I G

I G E

I G E C

I G E C A

Вариант 4

A

B C

D E F

G H I J

K L M N O

Вариант 5

A B C D E

Z B C D E

Y Z C D E

X Y Z D E

W X Y Z E

Вариант 6

A B C D E

B C D E

C D E

D E

E

Вариант 7

A B C D E

E A C D E

E D A D E

E D C A E

E D C B A

Вариант 8

A E D C B

B E D C

C E D

D E

E

Вариант 9

A

B A B

C B A B C

D C B A B C A

C B A B C

B A B

A

Вариант 10

F

E F

D E F

C D E F

B C D E F

A B C D E F

Вариант 11

F E D C B A

E F E D C B

D E F E D C

C D E F E D

B C D E F E

A B C D E F

Вариант 12

F

F E

F E D

F E D C

F E D C B

F E D C B A

Вариант 13

A B C D E

E D C B A

B A C D E

E D C B A

A B C D E

Вариант 14

A B C D E

A B C D

A B C

A B

A

Вариант 15

A

A B A

A B C B A

A B C D C B A

A B C B A

A B A

A

Вариант 16

A B C D E

Z B C D E

Y Z C D E

X Y Z D E

W X Y Z E

Вариант 17

A B C D E

B C D E

C D E

D E

E

Вариант 18

A B C D E

E A C D E

E D A D E

E D C A E

E D C B A

Вариант 19

A E D C B

B E D C

C E D

D E

E

Вариант 20

A

B A B

C B A B C

D C B A B C A

C B A B C

B A B

A

Вариант 21

F

E F

D E F

C D E F

B C D E F

A B C D E F

Вариант 22

F E D C B A

E F E D C B

D E F E D C

C D E F E D

B C D E F E

A B C D E F

Вариант 23

F

F E

F E D

F E D C

F E D C B

F E D C B A

Вариант 24

A B C D E

E D C B A

B A C D E

E D C B A

A B C D E

Вариант 25

A B C D E

A B C D

A B C

A B

A

Вариант 26

A

A B A

A B C B A

A B C D C B A

A B C B A

A B A

A