4.5 Chained decisions
Learning objectives
By the end of this section you should be able to
- Identify the branches taken in an
if-elifandif-elif-elsestatement. - Create a chained decision statement to evaluate multiple conditions.
elif
Sometimes, a complicated decision is based on more than a single condition. Ex: A travel planning site reviews the layovers on an itinerary. If a layover is greater than 24 hours, the site should suggest accommodations. Else if the layover is less than one hour, the site should alert for a possible missed connection.
Two separate if statements do not guarantee that only one branch is taken and might result in both branches being taken. Ex: The program below attempts to add a curve based on the input test score. If the input is 60, both if statements are incorrectly executed, and the resulting score is 75.
score = int(input())
if score < 70:
score += 10
# Wrong:
if 70 <= score < 85:
score += 5
Chaining decision statements with elif allows the programmer to check for multiple conditions. An elif (short for else if) statement checks a condition when the prior decision statement's condition is false. An elif statement is part of a chain and must follow an if (or elif) statement.
if-elif statement template:
# Statements before
if condition:
# Body
elif condition:
# Body
# Statements after
if-elif-else statements
Elifs can be chained with an if-else statement to create a more complex decision statement. Ex: A program shows possible chess moves depending on the piece type. If the piece is a pawn, show moving forward one (or two) places. Else if the piece is a bishop, show diagonal moves. Else if... (finish for the rest of the pieces).