if: A Simple (artificial) Example

Consider the problem of checking a number to see if it is positive or negative, and outputting an appropriate message. The SIPO statements we have used so far are not up to the task. The problem is that the message we output depends on the sign of the variable, and that may change from one run of the program to the next. That means that both the possible output statements "is negative" and "is positive" must be present in the program, and that the program must select which one to execute based on the sign of the variable. Python has a selection statement called if that allows us to do that, like this:

value = int(input("Enter an integer (e.g, 23 or -118): "))
if value < 0:
    print(value, "is negative")
else:
    print(value, " is positive")

(Note that the statements after the if and else statements are indented four spaces.)

The first statement should look familiar, but here's what happens next. The if statement says that if value is less than 0 then the first print statement should be executed, otherwise ("else") the second print statement should be executed.

Here's how the execution of the statements takes place. When the program reaches the if statement, it evaluates the expression value < 0. If the expression is True (the number stored in value is less than zero) it executes the first print statement, and then skips over the else and the second print statement. On the other hand, if the expression is False, it skips the first print statement and executes the statement after the else. The key is that in either case only one of the print statements is executed, i.e. the if statement selects which one to execute based on the test value < 0.

The flow of control of this if statement can be represented using a flowchart as shown below. Following the arrows (the flow so to speak) from top to bottom makes it clear that on any run of the program only one of the two output statements will be executed.

,