Каскадні інструкції розгалуження.

При написанні програми не рекомендується використовувати багаторазово вкладені одна в одну інструкції розгалуження – програма стає громіздкою і її важко читати. Вважається, що число рівнів вкладення не повинно перевищувати двох-трьох. Однак на практиці часто зустрічаються задачі, в яких необхідно перевіряти досить багато умов і, в залежності від результату перевірки, виконувати ті чи інші дії.

В мові Python передбачений спрощений запис для виконання таких вкладених перевірок. Для їх реалізації використовується каскадна інструкція розгалуження if-elif-else, яка має вигляд:

  • if логічний_вираз_1:
    • блок інструкцій_1
  • elif логічний_вираз_2:
    • блок_інструкцій_2
  • elif логічний_вираз_3:
    • блок_інструкцій_3
  • else:
    • блок_інструкцій_N

Інструкція виконується наступним чином. Обчислюється значення логічного_виразу_1. Якщо значення логічного_виразу_1 істинне (True), то виконується блок_інструкцій_1, після чого програма переходить до виконання першої інструкції наступного фрагмента алгоритму. Якщо ж значення логічного_виразу_1 хибне (False), то відбувається перехід до обчислення значення логічного_виразу _2. Якщо значення логічного_виразу_2 істинне, то виконується блок_інструкцій_2 і так далі. Блок_інструкцій_N виконується лише в тому випадку, коли жодний з логічних виразів не був істинним.

Присутність в каскадній інструкції розгалуження елемента else – не обов’язкова.

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

Приклад: Скласти програму, яка в залежності від зазначеного номера дня тижня виводить його назву.

  • num_day = int(input('Введіть номер дня тижня = '))
  • if num_day == 1:
    • print('Понеділок')
  • elif num_day == 2:
    • print('Вівторок')
  • elif num_day == 3:
    • print('Середа')
  • elif num_day == 4:
    • print('Четвер')
  • elif num_day == 5:
    • print('П’ятниця')
  • elif num_day == 6:
    • print('Субота')
  • elif num_day == 7:
    • print('Неділя')
  • else:
    • print('Такого дня не існує')