Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROSY_PO_IP.docx
Скачиваний:
16
Добавлен:
18.05.2015
Размер:
693.24 Кб
Скачать

23.Операторы управления ходом выполнения сценария на php.

24.Циклы в языках программирования: назначение и использования. Операторы цикла в php.

2.2.9. Операторы цикла

2.2.9.1. Простейший оператор цикла – цикл с предусловием - оператор while

Как правило, в реальных вычислениях на ЭВМ приходится программировать множество одинаковых операций над разными данными. Логично не писать тысячу раз одни и те же формулы, отличающиеся только именами переменных, а использовать одну и ту же по форме запись, предоставив транслятору или интерпретатору превратить её в реальные вычисления.

Такая организация вычислений называется циклической (или циклом), и она существует во всех высокоуровневых языках программирования.

Существует несколько видов циклов. Один из них – с использованием оператора while.

Предназначение этой конструкции – цикличное выполнение команд в теле цикла, включающее предварительную проверку, нужно ли это делать.

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

while (условие)

инструкция

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

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

Рис. 2‑1. Семантика оператора "while"

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

Структура цикла в двух возможных вариантах приведена ниже:

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

либо

while (выражение): блок_выполнения endwhile;

Если произошёл вход в цикл, то, очевидно, внутри цикла должно произойти что-то (какие-то вычисления), что, в конце концов, приведёт к невыполнению (ложности) условия, по которому происходит вход в тело цикла. Иначе произойдёт так называемое «зацикливание», что означает невозможность самопроизвольного выхода из цикла.

Приведём примеры использования цикла while (Пример 2 -1):

Пример 2‑1

<?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 -2.

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

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

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

Пример:

<?php

$i = 12;

do{

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

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

$i++;

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

}

while ($i<10)

?>