Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИТ_Ответы_5 курс.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
577 Кб
Скачать
☆

26. Основы php. Циклы. Цикл do... While

do... while

Циклы do..while очень похожи на циклы while , с той лишь разницей, что истинность выражения проверяется в конце цикла, а не в начале. Благодаря этому блок_выполнения цикла do...while гарантированно выполняется хотя бы один раз.

Структура:

do {блок_выполнения} while (выражение);

<?

// эта программа напечатает число 12, несмотря на то

// что условие цикла не выполнено

$i = 12;

do{

if ($i % 2 == 0) print $i;

// если число четное, то печатаем его

$i++;

// увеличиваем число на единицу

}while ($i<10)

?>

Пример 3.6. Оператор do..while

27. Основы php. Циклы. Цикл foreach

foreach

Еще одна полезная конструкция. Она появилась только в PHP4 и предназначена исключительно для работы с массивами.

Синтаксис:

foreach ($array as $value) {блок_выполнения}

либо

foreach ($array as $key => $value)

{блок_выполнения}

В первом случае формируется цикл по всем элементам массива, заданного переменной $array. На каждом шаге цикла значение текущего элемента массива записывается в переменную $value, и внутренний счетчик массива передвигается на единицу (так что на следующем шаге будет виден следующий элемент массива). Внутри блока_выполнения значение текущего элемента массива может быть получено с помощью переменной $value. Выполнение блока_выполнения происходит столько раз, сколько элементов в массиве $array.

Вторая форма записи в дополнение к перечисленному выше на каждом шаге цикла записывает ключ текущего элемента массива в переменную $key, которую тоже можно использовать в блоке_выполнения.

Когда foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый элемент.

<?php

$names = array("Иван","Петр","Семен");

foreach ($names as $val) {

echo "Привет, $val <br>";

// выведет всем приветствие

}

foreach ($names as $k => $val) {

// кроме приветствия,

// выведем номера в списке, т.е. ключи

echo "Привет, $val !

Ты в списке под номером $k <br>";

}

?>

Пример 3.7. Оператор foreach

28. Основы php. Операторы. Оператор break. Бесконечные циклы Операторы передачи управления

Иногда требуется немедленно завершить работу цикла либо отдельной его итерации. Для этого используют операторы break иcontinue .

Break

Оператор break заканчивает выполнение текущего цикла, будь то for , foreach , while , do..while или switch .break может использоваться с числовым аргументом, который говорит, работу скольких управляющих структур, содержащих его, нужно завершить.

<?php

$i=1;

while ($i) {

$n = rand(1,10);

// генерируем произвольное число

// от 1 до 10

echo "$i:$n ";

// выводим номер итерации и

// сгенерированное число

if ($n==5) break;

/* Если было сгенерировано число 5,

то прекращаем работу цикла. В этом случае

все, что находится после этой строчки

внутри цикла, не будет выполнено */

echo "Цикл работает <br>";

$i++;

}

echo "<br>Число итераций цикла $i ";

?>

Пример 3.8. Оператор break

Результатом работы этого скрипта будет примерно следующее:

1:7 Цикл работает

2:2 Цикл работает

3:5

Число итераций цикла 3

Если после оператора break указать число, то прервется именно такое количество содержащих этот оператор циклов. В приведенном выше примере это неактуально, поскольку вложенных циклов нет. Немного изменим наш скрипт:

<?php

$i=1;

while ($i) {

$n = rand(1,10);

// генерируем произвольное число

// от 1 до 10

switch ($n){

case 5:

echo "<font color=blue>

Выход из switch (n=$n)</font>";

break 1;

// прекращаем работу switch

// (первого содержащего break цикла)

case 10:

echo "<font color=red>

Выход из switch и

while (n=$n)</font>";

break 2;

// прекращаем работу switch и while

// (двух содержащих break циклов)

default:

echo "switch работает (n=$n), ";

}

echo " while работает – шаг $i <br>";

$i++;

}

echo "<br>Число итераций цикла $i ";

?>