69677

ІНСТРУКЦІЯ SWITCH-CASE (КОНСТРУКЦІЯ ВИБОРУ)

Доклад

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

Нами залишилася непоміченій дуже важлива конструкція — switch-case. Дана конструкція призначена для вибору дій, залежно від значення вказаного виразу. Конструкція switch-case чимось нагадує оператора if-else, який, по суті, є її аналогом.

Украинкский

2014-10-08

52 KB

0 чел.

Тема  9: ІНСТРУКЦІЯ SWITCH-CASE (КОНСТРУКЦІЯ ВИБОРУ)

Нами залишилася непоміченій дуже важлива конструкція — switch-case. Дана конструкція призначена для вибору дій, залежно від значення вказаного виразу. Конструкція switch-case чимось нагадує оператора if-else, який, по суті, є її аналогом. Конструкцію вибору потрібно використовувати, якщо передбачувані варіантів багато, скажімо, більше 5, і для кожного варіанту потрібно виконати специфічні дії. В цьому випадку використовувати оператора вибору if-else просто незручно.

Синтаксис switch-case такий:

,

switch    (вираз)

{

case   значення1    :      команди1;    [break;]

case   значення2   :      команди2;    [break;]

[default:    команди_по_замовчуванню;    [break;]]

}

Альтернативний синтаксис конструкції виглядає так:

switch    (вираз):

case   значение1:   команди1;    [break;]

case   значение2   :      команди2;    [break;]

[default:   команди_по_замовчуванню;    [break;]]

endswitch;

 

Працює ця конструкція таким чином:

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

2. Є видимим набір значень. Хай значення1 рівне значенню виразу, обчисленого на першому кроці. Якщо не вказаний оператор break, то будуть виконані команди i, i+1, i+2 ...,N. Інакше (є break) буде виконана тільки команда з номером i.

3. Якщо жодне значення з набору не співпало із значенням виразу, тоді виконується блок default, якщо він вказаний.

Невеликий приклад:

<?

$age=21;

switch ($age)

{

case 20 : echo "Вам двадцять років\n";

case 21 : echo "Вам двадцять один рік\n";

case 22 : echo "Вам двадцять два роки\n";

default: echo "Вам $age років\n";

}

?>

Якщо змінна   $age рівна 21, тоді будуть виведені рядки:

Вам двадцять один рік Вам двадцять два роки Вам   21   років

Ясна річ, що нам потрібне, щоб програма вивела тільки один рядок, тому потрібно використовувати операторів break:

<?

$age=21;

switch ($age)

{

case 20 : echo "Вам двадцять hjrsd\n"; break;

case 21 : echo "Вам двадцять один рік\n"; break;

case 22 : echo "Вам двадцять два роки\n"; break;

default: echo "Вам $age років\n"; break;

}

?>

Якщо хтось знає мову Pascal, то в нім була подібна конструкція case, що дозволяє указувати діапазони значень:

case    (age)

10..20   :   writeln('BAM   від   10   до   20   років');

end;

У РНР таку можливість можна реалізувати так (діапазон 20...22):

<?

$age=21; switch    ($age)

case 20 : case 21 : case 22 : echo "Вам від 20 до 22\n"; break;

?>

Збираємо один скрипт з декількох окремих скриптів

Інструкції require

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

Загальний синтаксис інструкції такий:

require   имя_файла;

Тепер розберемося докладніше, що ж робить require. Інтерпретатор аналізує сценарій і, знайшовши require, просто замінює її вмістом вказаного файлу. Це може бути HTML-файл або сценарій на PHP. B останньому випадку вміст файлу повинен бути обрамлений тегами <? і ?> — як у випадку із звичайним сценарієм. Вставка вмісту файлу, відбувається ДО виконання сценарію — прочитавши наступний пункт, ви відмітите різницю.

Дуже зручно використовувати цю інструкцію для включення HTML-заголовків. Наприклад:

Файл   header.html:

<html><head>

<title>My   Company's   Official   Web   Page</title> </head> <body>

Сценарій:

require   header.html /*   тіло   документа   */

Інструкції include

На відміну від require директива include дозволяє включити код в сценарій під час виконання сценарію. Використання цієї директиви виглядає таким чином:

include   ім'я  файлу;

Можливо, вам потрібно динамічно міняти заголовок залежно від ситуації:

for    ($i=0;    $i<4; $i++) {

inlcude   "header{$i}.html"

};

Створіть 4 файли: header0.html, headerl.html, header2.html і header3.html. Хай кожний з них містить відповідну імені файлу цифру — від 0 до 3. При виконанні сценарію ви побачите висновок 0123. Даний висновок означає, що вміст файлів вставляється в сценарій під час його виконання. Заміните include на require, і ви відчуєте різницю.

Звернете увагу на фігурні дужки. При такому контексті використання include вони обов'язкові. Чому? Інтерпретатор просто замінює include вмістом файлу. Уявіть, що наш файл містить не один, а декілька операторів. Вийде наступне:

for ($i=0; $i<4; $i++) operatorl; operator2; operator3;

Як ви бачите, ми отримуємо зовсім не те, на що розраховували. Ми хотіли, щоб всі три оператори виконалися чотири рази, а насправді, чотири рази виконується тільки перший оператор, а інші два будуть виконані після закінчення роботи циклу. Звідси слідує невеликий висновок: якщо ви забудете укласти include у фігурні дужки (у циклі), то ваша програма працюватиме некоректно або взагалі виникне помилка. Завжди беріть інструкцію include у фігурних дужок!

Особливості використання include і require

Що ж відбувається насправді при використанні include? Ми знаємо, що РНР перетворить наш сценарій у власне внутрішнє уявлення. Перший рядок, другий, третій... І так, поки він не дійде до інструкції include. Потім РНР припиняє транслювати наш сценарій і перемикається на вказаний в include файл. Цілком з'ясовно: інтерпретатор не знає, що буде в цьому файлі, тому не може відкласти його трансляцію «до кращих часів». Якщо у вас велика програма, і вона підключає додаткові файли за допомогою include, навряд чи вона працюватиме швидко, оскільки із-за особливостей include швидкодія різко знижується.

З require таких проблем немає: файл включається до виконання сценарію, тобто на момент трансляції він вже включений в наш сценарій і РНР немає необхідності чекати, поки відтранслюється вказаний файл.

Що ж використовувати? Якщо вам потрібно підключити якийсь додатковий модуль (наприклад, клас HtmlMimeMail, який розглядатиметься в цій книзі), використовуйте require. Якщо ви точно знаєте, що вам потрібно включити якийсь файл не один раз, використовуйте include, проте прагніть по можливості використовувати require скрізь, де тільки можна.

Інструкції одноразового включення include_once і require_once

Ваша програма розрослася до такого ступеня, що ви не можете пригадати, який файл ви включали, а який — ні? Такого бути не може! Невже не видно, що і де включається?

Така ситуація зустрічається досить часто при розробці дійсно великих сценаріїв. Припустимо, що у нас є сценарій main.php, у який включені файли header.php, code.php, footer.php. У файл code.php теж включається декілька файлів. У одному з цих файлів знаходиться інструкція:

require   "header.php";

Виходить, що файл header.php включений двічі. Що ж буває — ви забули або хтось з ваших колег навіть не підозрював, що файл header.php вже включений. Таке включення може стати причиною серйозної помилки, яку дуже важко знайти.

Розробники PHP передбачили вихід з цієї ситуації. Використовуючи інструкції одноразового включення include_once і require_once, ви можете бути упевнені: жоден файл не буде включений двічі. Працюють ці інструкції точно так, як і include і require, але з однією відмінністю: перед включенням файлу інтерпретатор перевіряє, чи включався цей файл чи ні. Якщо так, то файл не буде включений до складу сценарію. Звичайно, використання цих інструкцій вимагає додаткових зусиль від вашого інтерпретатора, оскільки він повинен пам'ятати імена всіх включених файлів, але це краще, ніж пам'ятати їх самому.


 

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

59100. Рухова активність і здоровя 43 KB
  Посміхайтеся частіше і будьте здорові та щасливі ІІ. Що ж саме про людину ми зараз вивчаємо на уроках біології А навіщо вам його розгадувати що дадуть вам знання організму людини Знання...
59101. Рушничок для мами 49.5 KB
  Ви мабуть чули слово декорації Де їх можна побачити Звичайно у театрі. Де можна побачити такі орнаменти Їх часто використовують для оздоблення різноманітних частин одягу у вишивці розписах вазонів та інших предметів побуту.
59102. Сім чудес світу 45 KB
  Мета: закріпити і систематизувати знання учнів з історії Стародавнього світу, розглянути матеріали про найвизначніші памятки світової культури; розвивати в учнів логічне мислення та зорову память; виховувати любов до прекрасного, інтерес до історії.
59103. Свято врожаю 70.5 KB
  На столах хліб пиріжки печиво тістечка фрукти кавуни мед компот квіти. Просимо Ласкаво просимо Певне чули ви малята І не раз такі слова: Хліб потрібно шанувати Хліб усьому голова Хлопчик. А тому завжди в пошані Хліб у школі і в садку. Шановні батьки гості запрошуємо вас до нашої господи...
59104. Свято квітів. Шепчуть ніжно квіти пелюстками 33 KB
  Здогадалися, хто я така? Я, Флора, королева рослинного світу. Кожного року саме в цей день - у день народження видатного педагога В. Сухомлинського в моїй чарівній країні відкривається карнавал квітів. Я вас щиро запрошую на це чудове осіннє свято.
59105. Свято меду 62 KB
  Свято меду (на Спаса) святкують тоді, коли учні чи студенти перебувають на канікулах. Як же зробити так, щоб молодь прилучилась, більше дізналася про наше українське бджільництво, звичаї пращурів, їх духовну культуру?
59106. Свято останнього дзвоника 57.5 KB
  Ведучий: Підростають щодня дітлахи Непомітно мов квіти весняні; Дуже швидко спливають роки Забираючи в далі незнані. Ведуча: Даль покликала друзі і вас Бо настала уже ця хвилина Зустрічаймо одинадцятий клас Бо сьогодні урочиста днина...
59107. Свято Різдва Христового 28.5 KB
  Степане Та це мабуть колядники прийшли одчиняй скоріше двері Перший колядник. Хай за вікном хуртеча злиться А нам співати і радіти Горить ялинка у світлиці З Різдвом Христовим любі діти Другий колядник. Колядуйте колядуйте Третій колядник. Четвертий колядник.
59108. Свято української мови 52.5 KB
  Олена Слободянка Мови чарівний голос На ріці життя тихо меле млин часу І у вишині зорі по одній гасить та запалює замість них нові знову І несе у світ пломінкий вогонь слова. Слово мовили знов уста мої слово Як бусинками ними виграє мова. Зорі і світи сіли край мого столу Слухають її мови чарівний голос.