Інструкція (оператор) if. Визначення. Приклади

Інструкція (оператор) if. Визначення. Приклади


Зміст


1. Для чого використовується інструкція if (оператор if)

Часто, при реалізації алгоритмів потрібно виконувати вибір ходу виконання програми в залежності від заданої умови. Для забезпечення цього сучасні мови програмування (Java, C#, C++ та інші) містять відповідні управляючі оператори (control statements), одним з яких є оператор розгалуження if. Мова програмування Python також має в своєму арсеналі інструкцію if, робота якої нічим не відрізняється від такої ж інструкції інших мов програмування.

Інструкцію if ще називають оператором if (statement if).

 

2. Які форми (різновиди) має інструкція if

Інструкція if має чотири форми:

  • форма if-elif-else. Ця форма ще називається повна форма;
  • скорочена форма if;
  • скорочена форма if-else;
  • скорочена форма if-elif.

 

3. Повна форма інструкції if (if-elif-else). Принцип виконання

У мові програмування Python загальна форма інструкції if має вигляд:

if вираз1 : набір1
elif вираз2 : набір2
...
elif виразN : набірN
else:
    набірN+1

де вираз1, вираз2, виразN – відповідний умовний вираз, що перевіряється на справжність. Якщо умовний вираз справджується, то його значення рівне True (істина). У цьому випадку виконується відповідний набір (множина) операторів набір1, набір2, набірN, набірN+1.

Інструкція if працює наступним чином. Якщо вираз1 рівний True, то виконується набір1 операторів, у противному випадку відбувається перехід до перевірки умови вираз2. За таким самим принципом обробляються гілки вираз2, …, виразN. Якщо жоден з виразів вираз1, вираз2, …, виразN не справджується (рівний False), то виконується набірN+1 який слідує після ключового слова else.

 

4. Скорочена форма if. Принцип виконання

Скорочена форма інструкції if не містить блоків elif та else і має наступний вигляд

if вираз : набір

У цьому випадку набір операторів виконується якщо справджується вираз (вираз = True). У противному випадку, виконується наступнй після if оператор.

 

5. Скорочена форма if-else. Принцип виконання

Скорочена форма може мати загальний вигляд if-else

if вираз : набір1
else : набір2

Наведена вище форма оператора if працює за наступним принципом. Спочатку перевіряється значення вираз. Якщо вираз справджується (рівний True), то виконується набір1 операторів. У противному випадку (вираз рівний False) виконується набір2 операторів.

 

6. Скорочена форма if-elif. Принцип виконання

Скорочена форма if-elif може мати наступний вигляд

if вираз1 : набір1
elif вираз2 : набір2
...
elif виразN : набірN

У цій формі оператор if подібний до оператора switch в інших мовах програмування. Оператор if-elif працює за наступним принципом. Якщо значення вираз1 справджується (рівне True), то виконується набір1 і відбувається вихід з оператора if-elif. В противному випадку (значення вираз1 рівне False) відбувається перехід до наступної гілки оператора на перевірку вираз2. Таким чином, виконується та гілка оператора if-elif, значення виразу в якій рівне True. Якщо жоден з виразів вираз1, вираз2, …, виразN не справджується, тоді відбувається перехід до наступного після if-elif оператора.



 

7. Приклад, що демонструє використання конструкції if-elif-else (повна форма)

Задано цілочисельне значення n=1..3 та радіус r. За заданим значенням n обчислити:

  • 1 – довжина кола;
  • 2 – площа круга;
  • 3 – об’єм кулі.

Текст програми в програмному режимі має наступний вигляд

n=2 # ввід даних
r=5.5
pi=3.1415

# обчислення, оператор if
if n==1:
    s=2*pi*r
    print("Довжина кола = ",s)
elif n==2:
    s=pi*r*r
    print("Площа круга = ",s)
elif n==3:
    s=4.0/3*pi*r*r*r
    print("Об'єм кулі = ",s)
else:
    print("Невірно введені дані")
print("----------------------")

У результаті виконання вищенаведеного коду буде отримано наступний результат

Площа круга = 95.03037499999999
----------------------

 

8. Приклад розв’язку квадратного рівняння з використанням інструкції if в інтерактивному режимі

Нижче наведено приклад розв’язку квадратного рівняння для заданих коефіцієнтів a, b, c. У прикладі демонструється скорочена форма оператора if.

>>> a = 8 # задати початкові значення a,b,c
>>> b = 3
>>> c = -2
>>> d = b*b-4*a*c # обчислити дискримінант
>>> if d>=0:
    x1=(-b-(d**0.5))/(2*a)
    x2=(-b+(d**0.5))/(2*a)

>>> x1,x2
(-0.7215002340823456, 0.34650023408234565)
>>>

З допомогою нижченаведеного коду можна перевірити значення дискримінанту d та правильність результату

>>> d
73
>>> a*x1*x1+b*x1+c
0.0
>>> a*x2*x2+b*x2+c
-4.440892098500626e-16
>>>

Як видно з результату, значення x1, x2 наближені до нуля, тобто розв’язок правильний.

 

9. Приклад розв’язку квадратного рівняння з використанням інструкції if у програмному режимі

У прикладі демонструється використання оператора if для знаходження розв’язку квадратного рівняння. Код наведений для програмного режиму. З допомогою функції print() виводиться результат обчислень та результат перевірки. Якщо значення дискримінанту d<0, то виводиться повідомлення “Рівняння не має коренів”.

a=2 # задати значення a,b,c
b=5
c=-4
d=b*b-4*a*c # обчислити d
if d>=0: # оператор if
    x1=(-b-(d**0.5))/(2*a)
    x2=(-b+(d**0.5))/(2*a)
    print("d = ",d) # вивід результату
    print("x1 = ", x1)
    print("x2 = ", x2)
    print
    print("Перевірка:")
    print("a*x1*x1+b*x1+c = ", a*x1*x1+b*x1+c)
    print("a*x2*x2+b*x2+c = ", a*x2*x2+b*x2+c)
else:
    print("рівняння не має розв'язку")

Як видно з прикладу, якщо в інструкції if потрібно виконати декілька операторів підряд (згрупувати), то вони виділяються з допомогою відступу.

Після запуску на виконання, в середовищі Python буде отримано наступний результат:

>>>
d = 57
x1 = -3.1374586088176875
x2 = 0.6374586088176875
Перевірка:
a*x1*x1+b*x1+c = 0.0
a*x2*x2+b*x2+c = 0.0
>>>

 

10. Приклад використання інструкції if-elif. Визначення кількості днів у місяці та високосного року

Задано рік та місяць. Розробити програму, яка визначає:

  • чи є заданий рік високосним;
  • кількість днів у місяці даного року. У програмі врахувати високосний рік.

Текст програми наступний

year=2100 # встановити деякий рік
month=2 # встановити деякий місяць
#
# визначення високосного року
f_leap_year=True # на початку прийняти, що рік високосний
if year%400==0:
    print("рік високосний")
elif year%100==0:
    print("рік невисокосний")
    f_leap_year=False
elif year%4==0:
    print("рік високосний")
else:
    print("рік невисокосний")
    f_leap_year=False
print("---------------------")
#
# визначення кількості днів у місяці
print("Кількість днів у місяці:")
nDays=31 # на початку кількість днів рівна 31
if (month==2)and(f_leap_year==True): nDays=29
elif (month==2)and(f_leap_year==False): nDays=28
elif (month==4)or(month==6)or(month==9)or(month==11):
    nDays=30
print(nDays)

У вищенаведеному коді додатково використано логічні операції and (логічне “і”) та or (логічне “або”).

У результаті виконання коду, буде отримано наступний результат

рік невисокосний
---------------------
Кількість днів у місяці:
28
>>>

 

11. Приклад використання вкладеної інструкції if-elif. Модифікований варіант програми визначення кількості днів у місяці з врахуванням високосного року

У даному прикладі демонструється використання вкладеної інструкції if-elif для проведення розрахуноку кількості днів у місяці на основі таких вхідних даних:

  • рік;
  • номер місяця у році.

Важливо обчислити, чи є заданий рік високосним.

Текст програми наступний:

year=2108 # встановити деякий рік
month=2 # встановити деякий місяць
#
# визначення високосного року
f_leap_year=True # на початку прийняти, що рік високосний
if year%400==0:
    print(year,"- рік високосний")
elif year%100==0:
    print(year,"- рік невисокосний")
    f_leap_year=False
elif year%4==0:
    print(year,"- рік високосний")
else:
    print(year,"- рік невисокосний")
    f_leap_year=False
print("---------------------")
#
# визначення кількості днів у місяці
if month==2:
    if f_leap_year==True: # вкладений оператор if-else
        nDays=29
    else:
        nDays=28
elif (month==4)or(month==6)or(month==9)or(month==11):
    nDays=30
else:
    nDays=31
print("Кількість днів у місяці:", month)
print("nDays=", nDays)

При визначенні кількості днів для місяця 2 (лютий), використовується вкладена інструкція if-else. Вкладеність визначається з допомогою відступів

...
if month==2:
    if f_leap_year==True: # вкладений оператор if-else
        nDays=29
    else:
        nDays=28
elif ...

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

2108 - рік високосний
---------------------
Кількість днів у місяці: 2
nDays= 29
>>>

 

12. Приклад, що демонструє використання скороченої конструкції if. Пошук максимального значення між трома величинами

У прикладі демонструється використання скороченої інструкції if для пошуку максимального значення між трьома величинами a, b, c. Текст програми наступний:

# пошук максимуму між величинами a, b, c
# встановити довільні значення
a,b,c = 20,30,17
# пошук максимуму mx
mx=a;
if mx<b:
    mx=b
if mx<c:
    mx=c
print("Max = ", mx)

Після запуску на виконання буде отримано наступний результат

Max = 30
>>>

 


Зв’язані теми