68931

Цикли План. Цикли з передумовою. Цикли з постумовою

Лекция

Информатика, кибернетика и программирование

Цикл дозволяє повторити певну і навіть не визначене коли робота циклу залежить від умови кількість разів якінебудь оператори. Дані оператори називаються тілом циклу они крутитимуться в циклі. Прохід циклу називається ітерацією. Як і С PHP підтримує три види циклів: Цикл з передумовою while...

Украинкский

2014-09-27

58 KB

2 чел.

Лекція № 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. Оскільки в цьому циклі спочатку виконується тіло, а потім перевіряється умова, то нам потрібно встановити початкове значення лічильника в одиницю:

<? $i   =   1; do   echo   $i;   while    ($i++   <10); ?>

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

Цикл з лічильником For

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

Наприклад, в циклі while зручно чекати певної події, наприклад, коли що повертається якоюсь функцією значення буде істинне (а така ситуація може і не відбутися). Цикл for зручно використовувати, наприклад, для заповнення масиву. Синтаксис циклу for:

for (команда_инициапизации; умова; команды_после_итерации) {   тіло циклу }

Оператор for починає свою роботу з виконання команд ініціалізації. Дані команди виконуються всього лише один раз. Після цього перевіряється умова: якщо воно істинне, виконується тіло циклу. Після того, як буде виконаний останній оператор тіла, виконуються команди «Після ітерації». Потім знову перевіряється умова, у випадку, якщо воно істинне, виконується тіло циклу і ітераційні для поста команди, і т.д.

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

<? for    ($i=0;    $i<10;    $i++)    echo   $i; ?>

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

<? for    ($i=0;    $i++<10;)    echo   $i; ?>

В цьому випадку нам не потрібні команди, що виконуються після ітерації. Якщо вам потрібно вказати декілька команд, ви можете розділяти їх комами:

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:

<?if    ($REMOTE_ADDR):?>

<hl>Welcome   home!</hl> <?else:?>

<hl>Hello</hl> <?endif;    ?>

Оператори 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. Ключем даного масиву є ім'я змінної, а значенням елементу масиву — значення змінної. Про цей важливий масив ми ще не раз поговоримо в цій книзі.


 

А также другие работы, которые могут Вас заинтересовать

47251. Підвищення якості ангіографічних зображень 7.74 MB
  Коронарная ангиография – исследование коронарных сосудов, питающих мышцу сердца. Эти сосуды наиболее часто поражаются атеросклерозом, их просвет суживается или полностью закрывается, что приводит к развитию стенокардии или инфаркта миокарда. Коронарография – прямой метод распознавания этих болезней.
47253. Сущность и своеобразие педагогической профессии 714.17 KB
  Учитель как субъект педагогической деятельности и профессионально обусловленные требования к нему. Профессиональное творчество в педагогической деятельности педагога. Изучение особенностей профессиональной направленности и пригодности к педагогической деятельности. Герсберг установил что настоящими мотивами деятельности учителя является многообразие труда самостоятельность профессиональный рост осознание важности дела и д.
47254. Электрическая часть ГРЭС 3х320 МВт 580.15 KB
  Место сооружения данной проектируемой ГРЭС находится в Центральном районе. Мощность генераторов установленных на ГРЭС 3х320 МВт. Генератор соединяется в блок с повышающим трансформатором мощностью 400МВ.А. Энергоблоки генератор - трансформатор работают на шины 220 кВ.
47255. Автоматизовані системи управління 391.5 KB
  Методичні вказівки містять вимоги до структури й змісту дипломного проекту за спеціальністю. Викладено вимоги й правила щодо оформлення пояснювальної записки і графічної частини дипломного проекту. Вимоги до структурних елементів вступної частини.
47256. Психологическое сопровождение команды спортсменов с ограниченными возможностями в СДЮСШОР ГБОУ «Балтийский Берег» 1.25 MB
  Особенностями спортсменов с умственной отсталостью атлетов входящих в команду Специальных олимпийцев является высокая степень неразвитости речи низкий уровень концентрации внимания отсутствие возможности к запоминанию последовательности действий стильное недоразвитие мелкой и недостаточное развитие крупной моторики. Чем выше уровень референтности окружающих цели и содержания деятельности тем больше влияние на отдельную личность способна оказать группа. Эффективность тренировочного процесса спортсменов с ограниченными...
47257. Исследование систем управления персоналом и влияние зарубежного опыта на Российскую модель на примере компании ОАО «Ростелеком» Петербургский филиал 137.86 KB
  Понятия подходы и принципы управления персоналом. Понятия управления персоналом. Основные подходы управления персоналом. Основные принципы управления персоналом за рубежом.
47258. ОЦЕНКА И РАСЧЕТ ФИНАНСОВЫХ ПОКАЗАТЕЛЕЙ, ХАРАКТЕРИЗУЮЩИХ ДЕЯТЕЛЬНОСТЬ ПРЕДПРИЯТИЯ 975.5 KB
  Цель такого анализа — исследовать важнейшие аспекты денежного оборота и принять меры по укреплению финансово-экономического состояния хозяйствующего субъекта. Стабильное финансовое состояние предприятия означает своевременное выполнение обязательств перед его персоналом