Инструкция (оператор) if. Определение. Примеры

Инструкция (оператор) if. Определение. Примеры


Содержание



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

Часто, при реализации алгоритмов, нужно выполнять выбор хода выполнения программы в зависимости от заданного условия. Для обеспечения этого современные языки программирования (Java, Java Script, C#, C++ и прочие) содержат соответствующие управляющие операторы (control statements), одним из которых есть оператор ветвления if. Язык программирования Python также имеет в своем арсенале инструкцию if, работа которой ничем не отличается от такой же инструкции других языков программирования.

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

 

2. Какие формы (разновидности) имеет инструкция if в Python?

В языке Python инструкция 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
>>>

 


Связанные темы