Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WEB - Лабораторная работа_2 - PHP.pdf
Скачиваний:
97
Добавлен:
26.03.2015
Размер:
197.97 Кб
Скачать

Итерация 1 Итерация 2

Если же вместо оператора break использовать оператор continue, будет прервана работа только третьей итерации и мы получим вывод:

Итерация 1 Итерация 2 Итерация 4 Итерация 5 Итерация 6 Итерация 7 Итерация 8 Итерация 9 Итерация 10

Предположим, что у нас есть вложенные циклы, например,

for (...)

{

for (...)

{

for (...)

}

}

Нам нужно прервать работу определенного цикла, например, первого. Тогда как оператор break находится в теле третьего. В этом случае можно передать функции break параметр — номер цикла, например, break(l). Нумерация циклов начинается с единицы.

2.7. Цикл перебора массивов foreach

В четвертой версии PHP появился еше один вид цикла — foreach. Данный цикл предназначен специально для перебора массивов.

Синтаксис данного цикла таков:

foreach(массив as $ключ=>$зкачение) операторы;

Операторы, содержащиеся в теле цикла, будут выполнены для каждого элемента массива. Переменная $ключ будет содержать имя ключа элемента, а переменная $ значение — значение элемента.

Следующий пример отобразит значение массива $GLOBALS, содержащего глобальные переменные (будут выведены как имена переменных, так и их значения):

<?

foreach($GLOBALS as $key=>$value) echo "$key = Svalue\n";

?>

Примечание.

Массив — это упорядоченный набор данных. Каждый элемент массива имеет индекс или ключ. Ключ служит для однозначной идентификации элемента массива. В одном массиве не может быть двух элементов с одинаковыми ключами

В PHP есть один очень полезный стандартный массив $GLOBALS. Ключом данного массива является имя переменной, а значением элемента массива — значение переменной. Об этом важном массиве мы еще не раз поговорим в этой книге.

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

Соседние файлы в предмете Программирование для Web