Конспект урока
Элективный курс: Основы программирования на Python
Уровень: Программирование для начинающих
Логика выполняющейся программы может быть сложнее, чем выбор одной из двух ветвей. Например, в зависимости от значения той или иной переменной, может выполняться одна из трех (или более) ветвей программы.
Как организовать такое множественное ветвление? Наверное, можно использовать несколько инструкций if: сначала проверяется условие в первой инструкции if (если оно положительно, то будет выполняться вложенный в нее блок кода), затем — во второй инструкции if и т.д. Однако при таком подходе проверка последующих инструкций будет продолжаться даже тогда, когда, допустим, первое условие было удовлетворено и блок кода при данной ветке выполнен. Проверка последующих условий часто бывает бессмысленной.
Чтобы решить проблему множественного ветвления, в структурных языках программирования предусмотрена специальное расширение инструкции if, позволяющее направить поток выполнения программы лишь по одной ветви, минуя остальные. Данная расширенная инструкция, помимо необязательной части else, включает части elif (сокращение от "else if" - "еще если") и выглядит примерно так, как показано на блок-схеме. Частей elif может быть сколь угодно много (в пределах разумного :).
В отличии от использования множества инструкций if, инструкция if-elif-else прекращает проверку условий, как только найдет первое совпадение. Например, если условие при if (первая ветка) будет удовлетворено, то после выполнения вложенного блока выражений, программа вернется в основную ветку.
Примеры скриптов с использованием инструкции if-elif-else на языке программирования Python:
x = -10
if x > 0:
print (1)
elif x < 0:
print (-1)
else:
print (0)
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 = 5
else:
print ("Error")
print (result)
Подумайте в какой момент прекратиться выполнение инструкции if-elif-else в примерах выше. При каком значении переменной могла «сработать» ветка else?
Практическая работа
А. Напишите программу по следующему описанию:
- двум переменным присваиваются числовые значения;
- если значение первой переменной больше второй, то найти разницу значений переменных (вычесть из первой вторую), результат связать с третьей переменной;
- если первая переменная имеет меньшее значение, чем вторая, то третью переменную связать с результатом суммы значений двух первых переменных;
- во всех остальных случаях, присвоить третьей переменной значение первой переменной;
- вывести значение третьей переменной на экран.
Б. Придумайте программу, в которой бы использовалась инструкция if-elif-else. Количество ветвей должно быть как минимум 4.