Условия (ветвления)
Ветвление в программе может быть достигнуто при помощи особых языковых конструкций – условий. Условие начинается с ключевого слова if
, за которым следует проверяемое арифметико-логическое выражение и двоеточие. После этого следует основная ветка – с новой строки в отдельном (вложенном) блоке указывается код, который должен быть выполнен, в случае если проверяемое условие окажется истинным в момент исполнения программы. Если же условие будет ложным, то код основной ветки не будет выполнен и управление перейдет к командам после него.
При необходимости может быть добавлена альтернативная ветка – код в ней будет выполнен только в том случае, если проверяемое выражение окажется ложным. Для этого используется ключевое слово else
, за которым так же следует двоеточие.
Помимо этого, после основной ветки могут быть добавлены дополнительные, при чем у каждой из них будет «собственное» проверяемое выражение. Такой «каскад» последовательно проверяемых веток записывается в коде практически так же, как и условие и тело основной ветки, с той лишь разницей, что для дополнительных веток используется ключевое слово elif
вместо обычного if
.
Как следует из описания и специфики веток в конструкции условия (ветвления), части, начинающиеся с elif
, должны идти после первой части, начинающейся с if
, а часть, начинающаяся с else
, может находиться только после них, то есть, в самом конце конструкции. В каждом блоке в вышеперечисленных ветках, разумеется, могут находиться любые объявления переменных, арифметико-логические выражения, другие условные конструкции, а также циклы. Таким образом, все языковые конструкции могут комбинироваться между собой в целях достижения требований к программе.
Примеры условных конструкций (для простоты положим, что все используемые переменные объявлены и инициализированы некоторым корректным образом ранее в коде):
if a == 1:
b = 2
if c + 3 < d - 4:
e: int = 5
f = g - h
else:
i = 6
if j >= 7 and k == 8.9:
l = 10
elif m == 11:
n: int = 12
elif o > 13.14 or p == 17:
q: int = 5
if q > 0:
q = 0
else:
r = 15.16 + s