Логіка виконуваної програми може бути складніша, ніж вибір однієї з двох гілок. Наприклад, залежно від значення тієї чи іншої змінної, може виконуватися одна з трьох (або більше) гілок програми.
Як організувати таке множинне розгалуження? Напевно, можна використовувати декілька інструкцій if: спочатку перевіряється умовний вираз у першій інструкції if (якщо він True, то буде виконуватися вкладений в неї блок коду), потім у другій інструкції if і т.д. Однак при такому підході перевірка наступних інструкцій буде продовжуватися навіть тоді, коли перша умова була True, і блок коду при даній гілці був виконаний. Перевірка наступних умов може виявитися безглуздою.
Зазвичай таку проблему можна вирішити за допомогою вкладених конструкцій if-else. Однак при цьому часто з'являється проблема правильного трактування коду: незрозуміло, до якого if відноситься else (хоча в Python така плутанина не можлива через обов'язкові відступи).
З іншого боку, в ряді мов програмування, в тому числі і Python, передбачено спеціальне розширення інструкції if, що дозволяє направити потік виконання програми з одній гілок. Дана розширена інструкція, крім необов'язкової частини else, містить ряд гілок elif (скорочення від "else if" - "ще якщо") і виглядає приблизно так, як показано на блок-схемі. Частин elif може бути як завгодно багато (в межах розумного, звичайно).
На відміну від використання безлічі одиночних інструкцій if, інструкція if-elif-else припиняє перегляд наступних гілок, як тільки логічне вираз в поточній гілці буде True. Наприклад, якщо вираз при if(перша гілка) буде True, то після виконання вкладеного блоку виразів, програма повернеться до основної гілки.
Приклади скриптів з використанням інструкції if-elif-else на мові програмування Python:
Приклад_1
x =-10
if x >0:
print(1)
elif x <0:
print(-1)
else:
print(0)
Приклад_2
result ="no result"
num1 =3
if num1 ==0:
result =0
elif num1 ==1:
result =1
elif num1 ==2:
result =2
elif num1 ==3:
result =3
elif num1 ==4:
result =4
elif num1 ==5:
result =45
else:
print("Error")
print(result )
Практична робота_6
1.Напишіть програму за наступним описом:
двом змінним присвоюються числові значення;
якщо значення першої змінної більше другої, то знайти різницю значень змінних (відняти від першої другу), результат присвоїти третій змінній;
якщо перша змінна має менше значення, ніж друга, то третю змінну пов'язати з результатом суми значень двох перших змінних;
у всіх інших випадках, присвоїти третій змінній значення первої змінної;
вивести значення третьої змінної на екран.
2.Придумайте програму, в якій би використовувалася інструкція if-elif-else. Кількість гілок повинна бути як мінімум чотири.
Готовий проєкт завантажити в Classroom (після завантаження файлу не забуваємо натиснути здати).