Розгалуження (основи php - урок з курсу)

Розгалуження в програмуванні, Варіативність програми, Умови, Вибір

Розгалуження (основи php - урок з курсу)

Мабуть, жоден скільки-небудь складний сценарій неможливо уявити без розгалуження. Вони дозволяють змінювати логіку виконання програми в залежності від вхідних даних. У PHP існує група умовних операторів, які і допомагають розгалужувати код програми.

Для кращого розуміння концепції розгалуження погляньте на дві блок-схеми нижче:

Розгалуження (основи php - урок з курсу)

Блок-схема, розташована зліва. не має операторів розгалуження. Програма, що виконується згідно з цією схемою, завжди буде послідовно проходити три блоки операторів: Блок операторів 1, Блок операторів 2, Блок операторів 3.

Тепер погляньте на праву блок-схему. У ній присутній умовний оператор, який пропонує дві альтернативи виконання. Якщо умова виконана, буде відпрацьовувати перший блок операторів, якщо умова не виконана, відпрацює другий блок операторів. Таким чином, така програма має два варіанти виконання: Блок операторів 1, Блок операторів 3. лібоБлок операторів 2, Блок операторів 3.

Можливість визначати альтернативу ходу виконання програми є найпотужнішим інструментом програмування.

У найпростішому вигляді використання оператора if виглядає так:
if (Умова) Дія;
Умова - це будь-який вираз з булевим значенням (true або false). Дія виконується тоді, коли Умова істинно (т. Е. Одно true). В результаті перевірки будь-якої умови може виконуватися відразу кілька операторів, тоді вони утворюють блок, який повинен бути укладений у фігурні дужки:

Якщо порівнювати цей сценарій з правого блок-схемою на малюнку вище, то Блоком операторів 1 тут є послідовність:
Действіе1;
Действіе2;
Блок операторів 2 порожній, так само як і Блок операторів 3.

Часто виникає необхідність вказати будь-які дії не тільки, коли умова вірна, але і коли воно помилкове. У цьому випадку використовується ключове слово else.

Даний сценарій відповідає правій блок-схемі на малюнку вище, якщо з неї виключити Блок операторів 3.

Ключове слово elseif дозволяє здійснювати перевірку додаткових умов, якщо попередні умови виявилися помилковими. Розглянемо наступний приклад:

Даний приклад можна зобразити у вигляді частини блок-схеми:

Розгалуження (основи php - урок з курсу)

Припустимо Условіе1 і Условіе2ложние. а Условіе3істінно. В даному випадку інтерпретатор PHP перевірить спочатку Условіе1. переконається, що воно помилкове, потім Условіе2. Після цього дійде до Условія3, побачить, що воно істинне, і ввійде всередину третього блоку операторів. Після чого виконання сценарію продовжиться вже після всієї цієї конструкції.

А що буде, якщо істинні відразу кілька умов, наприклад Условіе2 і Условіе3. В цьому випадку виконається тільки один блок операторів першого справжнього умови. У нашому випадку, якщо істинні Условіе2 і Условіе3. виконається тільки Блок операторов2. Після чого інтерпретатор перейде до виконання інструкцій, які йдуть після закриває дужки> останнього блоку else. Щоб краще зрозуміти принцип роботи, напишіть невеликий сценарій з прикладу нижче:

Подивіться результат виконання, змінюючи значення $ a. Блоки коду операторів elseif і else виконуються тільки тоді, коли всі перевірені раніше умови виявилися рівними false.

Тернарний оператор має три операнда (звідси така назва). Виглядає він у такий спосіб:
Мінлива = Умова. Значення1. значення2;
Якщо значення Умови істинно, то змінної присвоюється значення1, інакше значення2. приклад:

Напишіть цей невеликий сценарій і переконайтеся, що змінної $ a в даному випадку присвоюється рядок "1 менше 2", т. К. Умова (1 <2 ) истинно. Теперь попробуйте поменять знак с " <" на "> "І перевірте результат.

Тернарний оператор з'явився вперше в мові Сі. Він дозволяє включати в операцію присвоювання перевірку умови. Це прекрасна можливість, що робить код лаконічніше. Користуйтеся тернарного оператором!

Однак остерігайтеся вкладеності таких операторів, т. К. Це сильно знижує Новомосковскбельность коду.

Оператор switch обчислює значення заданого виразу і порівнює його із запропонованими варіантами. У разі збігу виконується відповідний блок коду. Оператор switch повинен виглядати так:

Спочатку switch обчислює значення Вирази. після чого порівнює його зі значенням кожної мітки case (значення1. значення2). Як тільки виявляється збіг, виконується відповідний блок операторів.

Зверніть увагу на ключове слово break в кінці кожного блоку case. break говорить про те, що виконання операторів в блоці switch закінчено, і потрібно переходити до виконання операторів після всього блоку switch (після фігурної дужки). У разі, коли в кінці блоку case немає оператора break, інтерпретатор продовжить виконувати оператори наступних блоків.

Якщо ж після проходу по всьому мітках case збіг так і не зустрілося, виконуються оператори з блоку default. Втім, це необов'язковий блок і він може бути відсутнім. У такому випадку, якщо інтерпретатор не знайшов жодного збігу, виконання програми продовжиться з рядка, наступній за блоком switch. Приклад нижче:

Іноді пропуск оператора break може використовуватися навмисно для забезпечення правильної логіки програми.

Особливістю мови PHP є те, що мітками case можуть бути змінні простих типів (НЕ масиви і не об'єкти). Наприклад, сценарій нижче, вірний з точки зору синтаксису мови.

Оператор switch прийнято використовувати, коли алгоритм має більше двох альтернатив виконання. Інакше має сенс користуватися зв'язкою операторів if-else.