Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1
Лекція № 7

Тема: Цикли

План

  1. Цикли з передумовою

  2. Цикли з постумовою

  3. Цикл з лічильником

  4. Оператори break і continue

  5. Цикл перебору масивів


ЦИКЛИ

На другому місці по частоті використання, після умовного оператора, знаходяться цикли. Цикл дозволяє повторити певну (і навіть не визначене — коли робота циклу залежить від умови) кількість разів які-небудь оператори. Дані оператори називаються тілом циклу -они «крутитимуться» в циклі. Прохід циклу називається ітерацією.

Як і С, PHP підтримує три види циклів:


  • Цикл з передумовою (while)

  • Цикл з післяумовою (do-while)

  • Цикл з лічильником (for)


Цикл з передумовою While

Принцип роботи циклу з передумовою:



  • Обчислюється значення логічного виразу.

  • Якщо значення істинне, виконується тіло циклу, інакше — перехід до наступного за циклом оператора.

Синтаксис циклу з передумовою виглядає таким чином:
while (логічний вираз) інструкція;
В даному випадку тілом циклу є «інструкція». Звичайне тіло циклу складається з більшого числа операторів. Простий приклад циклу:
$i=0; while($i++ < 10) echo $i;

?>
Дана програма виведе рядок 12345678910. Звернете увагу на послідовність виконання операцій умови $i++ < 10. Спочатку перевіряється умова, а тільки потім збільшується значення змінної. Якщо ж ми поставимо операцію інкремента перед змінній (++Si<10), то спочатку буде виконано збільшення змінної, а тільки потім — порівняння. В результаті ми отримали б рядок 123456789.

Цей же цикл можна було б записати по-іншому:


Si = 0; while ($i<10)

{

$i ++;// збільшення лічильника



echo $i;

}
Якщо ми збільшимо лічильник після виконання оператора echo, ми отримаємо рядок 0123456789. Але у будь-якому випадку, у нас буде 10 ітерацій. Ітерація — це прохід циклу, тобто виконання інструкцій тіла циклу.



Цикл з постумовою do while

Цикл з умовою поста відрізняється від циклу з передумовою тим, що спочатку виконується тіло циклу, а тільки потім вже перевіряється умова. Таким чином, тіло циклу хоч би один раз, але буде обов'язково виконано.

Синтаксис циклу do while такий:
do

{// тіло циклу

} while (умова);
Спробуємо за допомогою циклу з умовою поста отримати рядок 12345678910. Оскільки в цьому циклі спочатку виконується тіло, а потім перевіряється умова, то нам потрібно встановити початкове значення лічильника в одиницю:

Нагадаю, що ми можемо збільшувати значення лічильника в тілі циклу (так навіть зрозуміліше).
Цикл з лічильником For

Цикл з лічильником використовується для виконання тіла циклу певної кількості разів.

Наприклад, в циклі while зручно чекати певної події, наприклад, коли що повертається якоюсь функцією значення буде істинне (а така ситуація може і не відбутися). Цикл for зручно використовувати, наприклад, для заповнення масиву. Синтаксис циклу for:
for (команда_инициапизации; умова; команды_после_итерации) { тіло циклу }
Оператор for починає свою роботу з виконання команд ініціалізації. Дані команди виконуються всього лише один раз. Після цього перевіряється умова: якщо воно істинне, виконується тіло циклу. Після того, як буде виконаний останній оператор тіла, виконуються команди «Після ітерації». Потім знову перевіряється умова, у випадку, якщо воно істинне, виконується тіло циклу і ітераційні для поста команди, і т.д.

Виведемо звичний нам рядок:



Даний сценарій виведе рядок 0123456789. Нам же потрібний рядок 12345678910, тому потрібно забезпечити збільшення лічильника при перевірці логічного виразу:

В цьому випадку нам не потрібні команди, що виконуються після ітерації. Якщо вам потрібно вказати декілька команд, ви можете розділяти їх комами:
for ($i=0, $j=0; $<10; $i++, $j++) echo $i;
Як ви вже встигли відмітити, цикл з лічильником є варіацією циклу з передумовою, оскільки спочатку в нім перевіряється умова, а тільки потім виконується тіло.

Альтернативний синтаксис

Цикли while і for мають альтернативний синтаксис. Для циклу while він такий:


while (логическое_выражение):

тіло циклу endwhile;


А для циклу for — такий:
for (команды_инициализации; умова; команды_после_итерации) :

тіло циклу endfor;


Зверніть увагу на двокрапку — його наявність обов'язкова! Альтернативний синтаксис також передбачений для оператора if-eIse:
if (логическое_выражение):

команди; е1зе1^логическое_выражение2) :

команди; else:

команди; endif;


Використовувати даний синтаксис чи ні — ваша особиста справа. Що ж до мене, то я вважаю за краще використовувати «класику» — звичайний синтаксис.

Використовувати альтернативний синтаксис має сенс, якщо ви вважаєте за краще включати в РНР-сценарії HTML-код, а не виводити його за допомогою echo. B цьому випадку альтернативний синтаксис полегшує використання операторів if-else, while і for:




Welcome home!

Hello
Оператори break і continue

При використанні циклом можна використовувати операторів break і continue. Перший перериває роботу всього циклу, а другою — тільки поточній ітерації. Розглянемо наступні приклади:


$i = 0;


while ($i++ < 10)

{

if ($i==3) break;



echo "Ітерація $i\n";

?>
В даному прикладі після другої ітерації робота циклу буде перервана і програма виведе рядки:

Ітерація 1 Ітерація 2

Якщо ж замість оператора break використовувати оператора continue, буде перервана робота тільки третьої ітерації і ми отримаємо висновок:

Ітерація 1

Ітерація 2

Ітерація 4

Ітерація 5

Ітерація 6

Ітерація 7

Ітерація 8

Ітерація 9

Ітерація 10

Припустимо, що у нас є вкладені цикли, наприклад


for (...) {

for (...)



{

for (...)


Нам потрібно перервати роботу певного циклу, наприклад, першого. Тоді як оператор break знаходиться в тілі третього. В цьому випадку мож-

але передати функції break параметр — номер циклу, наприклад, break(l). Нумерація циклів починається з одиниці.



Цикл перебору масивів foreach

У четвертій версії PHP з'явився ще один вид циклу — foreach. Даний цикл призначений спеціально для перебору масивів.

Синтаксис даного Циклу такий:
foreach(MACCMB as $ключ=>$значение) оператори;
Оператори, що містяться в тілі циклу, будуть виконані для кожного елементу масиву. Змінна $ключ міститиме ім'я ключа елементу, а змінна $значение — значення елементу.

Наступний приклад відобразить значення масиву SGLOBALS, що містить глобальні змінні (будуть виведені як імена змінних, так і їх значення):


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



?>
У PHP є один дуже корисний стандартний масив $GLOBALS. Ключем даного масиву є ім'я змінної, а значенням елементу масиву — значення змінної. Про цей важливий масив ми ще не раз поговоримо в цій книзі.

Лекція №7 Тема: Цикли План Цикли з передумовою Цикли з постумовою Цикл з лічильником

Цикл дозволяє повторити певну (і навіть не визначене — коли робота циклу залежить від умови) кількість разів які-небудь оператори. Дані оператори називаються тілом циклу -они «крут

54.13kb.

12 10 2014
1 стр.


Лекція доц. Машков А

Сімейне право: доктрина та юридична практика: м1 Правове регулювання та захист сімейних прав в Україні (лекція) доц. Михальнюк О. В

358.38kb.

10 09 2014
1 стр.


Лекція 1 вступна лекція з курсу „охорона праці" Питання: 1 Значення питань охорони праці в суспільстві. 2 Нормування І контроль у галузі охорони праці. 3 Предмет "

Гост 12 005-88 ссбт. „Общие санитарно – гигиенические требования к воздуху рабочей зоны”

1014.35kb.

14 10 2014
8 стр.


Лекція Вступ. Кінематика матеріальної точки. Динаміка матеріальної точки. Робота і енергія. План. Механіка. Система

Лекція Вступ. Кінематика матеріальної точки. Динаміка матеріальної точки. Робота і енергія

352.46kb.

08 10 2014
3 стр.


Учебный план цикл общего усовершенствования эндоскопия 1

Санитарно-противоэпидемическая работа в эндо­скопической службе. Са­нитарное просвещение

137.72kb.

18 12 2014
1 стр.


Тема Руководитель

Цикл радиопередач по истории казачества станицы Березовской Усть-Медведицкого округа

342.57kb.

10 10 2014
1 стр.


План урока производственного обучения профессия: «Повар, кондитер» Курс первый Группа №101 Тема программы по перспективно-тематическому плану: Тема №18«Приготовление и порционирование первых блюд». Тема урока

Сформировать у обучающихся профессиональные знания по приготовлению заправочных супов. Изучить технологию приготовления щей; их разновидности, подачу, требования к качеству и хране

198.87kb.

17 12 2014
1 стр.


6. Цикл выполнения команд ЭВМ цикл выполнения команды это

Последовательность микроопераций центрального процессора, реализующих конкретную команду

79.26kb.

15 09 2014
1 стр.