Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PI_lektsii_2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

// Ця програма надрукує всі парні цифри

 $ I = 1;

while ($ i <10)

{// Друкуємо цифру, якщо вона парна

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

/ збільшуємо $ i на одиницю

$ I ++;

 } ?>

do ... while – призначений для організації циклічних обчислювальних процесів, як правило з невідомим числом повторень. Синтаксис:

do оператор; while (вираз);

Порядок виконання структури комп'ютером:

  1. Виконується оператор.

  2. Обчислюється значення виразу.

  3. Якщо значенням вирази є true, то відбувається перехід до пункту 1.

  4. Якщо значенням вирази є false, то відбувається перехід до виконання наступного оператора програми.

Цикли do..while дуже схожі на цикли while, з тією лише різницею, що істинність виразу перевіряється в кінці циклу, а не на початку. Завдяки цьому блок_виконання цикл do ... while гарантовано виконується хоча б один раз.

<? Рhp

// ця програма надрукує число 12,

// незважаючи на те, що умова циклу не виконано

$ I = 12;

do

{// якщо число парне, то друкуємо його

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

// збільшуємо число на одиницю

$ I ++;

} While ($ i <10)

?>

    1. Оператори передачі управління

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

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

Начало формы

Конец формы

Приклад:

<?php $i=1;

while ($i)

{ // генеруємо довільне

// число від 1 до 10

$n = rand(1,10);

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

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

echo "$i:$n ";

// якщо було згенеровано число 5,

// то припиняємо роботу циклу,

// у цьому випадку всі

// що знаходиться після цієї строчки

// всередині циклу, не буде виконано

if ($n == 5) break;

echo "Цикл працює<br>";

$i++; }

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

?>

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

  • 1:7 Цикл працює

  • 2:2 Цикл працює

  • 3:5 Число ітерацій циклу 3

Якщо після оператора break вказати число, то перерветься саме таку кількість циклів, яке містить цей оператор (характерно для вкладених циклів). У наведеному вище прикладі це неактуально, оскільки вкладених циклів немає. Трохи змінимо наш скрипт. Приклад:

<?php $i=1; while ($i)

{ // генеруємо довільне

// число від 1 до 10

$n = rand(1,10);

switch ($n)

{ // припиняємо роботу switch

// (першого break циклу,що міститься)

case 5:

echo "<font color=blue>Вихід з switch (n=$n)</font>";

break 1;

// припиняємо роботу switch і while

// (двох break циклів, що містяться)

case 10:

echo "<font color=red>Вихід з switch і while

(n=$n)</font>"; break 2;

default:

echo "switch працює (n=$n),";

}

Сontinue. Іноді потрібно не повністю припинити роботу циклу, а тільки почати нову ітерацію. Оператор continue дозволяє пропустити подальші інструкції з блоку_виконання будь-якого циклу і продовжити виконання з нового кола. Сontinue можна використовувати з числовим аргументом, який вказує, скільки його керуючих конструкцій повинні завершити роботу. Замінимо в прикладі попереднього параграфа оператор break на continue. Крім того, обмежимо кількість кроків циклу чотирма.

Приклад:

<?php $i=1; while ($i<4)

{ // генеруємо довільне

// число від 1 до 10

$n = rand(1,10);

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

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

echo "$i:$n ";

if ($n==5)

{ // Якщо було згенеровано число 5,

// починаємо нову ітерацію циклу,

// $i не збільшується

echo "Нова ітерація ";

continue; } echo "Цикл працює <br>";

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

?>

Начало формы

Конец формы

Результатом роботи цього скрипта буде:

  • 1:10 Цикл працює

  • 2:5 Нова ітерація

  • 2:1 Цикл працює

  • 3:1 Цикл працює

  • Число ітерацій циклу 4

Зауважимо, що після виконання оператора continue робота циклу не закінчується. У прикладі лічильник циклу не змінюється у разі отримання числа 5, оскільки він знаходиться після оператора continue. Фактично з допомогою continue ми намагаємося уникнути ситуації, коли буде згенеровано число 5. Тому можна було просто написати, замінивши оператор continue на перевірку істинності виразу:

Начало формы

Конец формы

<?php $i=1; while ($i < 4)

{ // генеруємо довільне

// число від 1 до 10

$n = rand(1,10);

if ($n! == 5)

{ // виводимо номер ітерації

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

echo "$i:$n <br>";

$i++; } } ?> У PHP існує одна особливість використання оператора continue – в конструкціях switch він працює так само, як і break. Якщо switch знаходиться всередині циклу і потрібно почати нову ітерацію циклу, слід використовувати continue 2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]