3) Conditional Execution: Binary & Unary Selection
Binary Selection
In order to write useful programs, we almost always need the ability to check conditions and change the behavior of the program accordingly. Selection statements, sometimes also referred to as conditional statements, give us this ability. The simplest form of selection is the if statement. This is sometimes referred to as binary selection since there are two possible paths of execution.
The syntax for an if
statement looks like this:
if BOOLEAN EXPRESSION: STATEMENTS_1 # executed if condition evaluates to Trueelse: STATEMENTS_2 # executed if condition evaluates to False
The boolean expression after the if
statement is called the condition. If it is true, then the indented statements get executed. If not, then the statements indented under the else clause get executed.
As with the function definition from the last chapter and other compound statements like for
, the if
statement consists of a header line and a body. The header line begins with the keyword if
followed by a boolean expression and ends with a colon (:).
The indented statements that follow are called a block. The first unindented statement marks the end of the block.
Each of the statements inside the first block of statements is executed in order if the boolean expression evaluates toTrue
. The entire first block of statements is skipped if the boolean expression evaluates to False
, and instead all the statements under the else
clause are executed.
There is no limit on the number of statements that can appear under the two clauses of an if
statement, but there has to be at least one statement in each block.
Unary Selection
Another form of the if
statement is one in which the else
clause is omitted entirely. This creates what is sometimes called unary selection. In this case, when the condition evaluates to True
, the statements are executed. Otherwise the flow of execution continues to the statement after the body of the if.
What would be printed if the value of x
is negative? Try it.
Do you want to draw a spiral?
Can you drive yet?
Can you drive yet (or else)?
Polygon or Rosette?
Polygon and Rosette