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

Пример 2‑29

<?php

//эта программа напечатает все четные цифры в интервале 1- 9

$i = 1;

while ($i < 10)

{

if ($i % 2 == 0) echo "$i <br>";

// печатаем цифру, если она четная

$i++;

// и увеличиваем $i на единицу

}

echo "<br>";

//П

$n=1;//инициализация переменной обязательна.

//иначе её значение будет равно нулю

while ($n < 10)

{

echo 'Значение $n = ' , $n, "<br>";

$n *= 2;

}

// Вывод всех степеней 2 до 2^31 включительно

$i = 1; $p = 2;

while ($i < 32)

{

echo $p, " ";

$p *= 2;

$i ++;

}

?>

2.2.9.2. Цикл с постусловием - оператор do while

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

Оператор “do-while” позволяет реализовать цикл с постусловием в программе и имеет следующий вид:

do

инструкция

while (условие)

"Условие" - это логическое выражение, "инструкция" - это обычно блок.

Тело цикла “do-while” выполняется хотя бы один раз, независимо от условия повторения цикла.

Семантика оператора “do-while” может быть определена посредством блок-схемы, изображенной на Рис. 2 -6.

Рис. 2‑6. Семантика оператора do-while

Элемент "условие" представляет собой логическое (булево) выражение, значением которого является true или false. Может отсутствовать часть с else.

Второй (альтернативной) формы у этого оператора нет. В отличие от задач прикладного программирования этот цикл достаточно редко используется при программировании сценариев.

Пример:

<?php

$i = 12;

do{

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

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

$i++;

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

}

while ($i<10)

?>

2.2.9.3. Циклы for

Операторы, обеспечивающие циклические вычисления на основе “for(для), были введены в высокоуровневые языки программирования с самого начала их развития.

В настоящее время известно несколько модификаций этого оператора.

Основная идея – использование начальной строки оператора для установки (инициализации) некоторых начальных условий, записи условий выхода из цикла и управления параметрами выхода в начальной строке оператора.

Традиционный цикл for

Семантика простейшего (традиционного) оператора цикла представлена на. Этот оператор основан на использовании счётчике цикла – переменой “i”. Шагом цикла по умолчанию является +1.

Сначала осуществляется инициализация переменной – счётчика. Начальное значение i=i1. После прохождения тела цикла, значение счётчика увеличивается на шаг =1. Вход в тело цикла прекращается при выполнении условия i>i2. При выполнении этого условия, управление передаётся на команду, следующую за телом цикла. В общем случае способ изменения состояния счётчика может быть другим.

Цикл типа for (для)

Предписывает выполнять тело цикла для всех значений       некоторой переменной (параметра цикла) в заданном диапазоне.     

нц для i от i1 до i2

  тело цикла

  (последовательность действий)

кц

Рис. 2‑7 а. Семантика традиционного цикла for

Рис. 2‑5 б. Блок-схема цикла for

Общий синтаксис традиционного цикла for имеет следующий вид:

for (начальное_значение; конечное_условие; инкремент)

{

фрагмент кода - тело цикла;

}

Начальное_значение – это выражение, определяющее переменную (счётчик цикла) и инициализирующее её значение. Например, $i = 1.

При этом, в качестве начального значения можно использовать число, числовое выражение (например, 2+1), или значение переменной.

Конечное_условие – выражение, определяющее конечное значение счётчика. Например: $i < 10, или $i < $size, $i < $size + 10.

Инкремент – выражение, которое определяет, на какую величину будет изменяться счётчик после очередной итерации (повторения) тела цикла.

Инкремент (шаг) может быть отрицательным.

Переменная – счётчик цикла может быть использован в выражениях в теле цикла.

Указанные особенности отражены в примере Пример 2 -30.