Part 03 - Flow Control - Conditionals
If Statement
| Definition: if statement A control statement that contains one or more Boolean expressions whose results determine whether to execute other statements within the If statement. |
An if statemnt allows you to travel down multiple logical paths, depending on a condition given. If the condition given is true, the block of code associated with it will be run.
i = 5 if i == 5: print "i is equal to 5."
i is equal to 5.
| Be careful notice the difference between i = 5 and i == 5. If you try an assignment while running a conditional, Boo will emit a warning. |
You may have noticed that unlike other languages, there is no then-endif or do-end or braces { }. Blocks of code are determined in Boo by its indentation. By this, your code blocks will always be noticeable and readable.
| Recommendation Always use tabs for indentation. In your editor, set the tab-size to view as 4 spaces. |
You can have multiple code blocks within eachother as well.
i = 5 if i > 0: print "i is greater than 0." if i < 10: print "i is less than 10." if i > 5: print "i is greater than 5."
i is greater than 0. i is less than 10.
If-Else Statement
With the if statement comes the else statement. It is called when your if statement's condition is false.
i = 5 if i > 5: print "i is greater than 5." else: print "i is less than or equal to 5."
i is less than or equal to 5.
Quite simple.
If-Elif-Else Statement
Now if you want to check for a condition after your if is false, that is easy as well. This is done through the elif statement.
i = 5 if i > 5: print "i is greater than 5." elif i == 5: print "i is equal to 5." elif i < 5: print "i is less than 5."
i is equal to 5.
You can have one if, any number of elif s, and an optional else .
Unless Statement
The unless statement is handy if you want a readable way of checking if a condition is not true.
i = 5
unless i == 5:
print "i is equal to 5."
It didn't output because i was equal to 5 in that case.
Statement with Modifier
Like in Ruby and Perl, you can follow a statement with a modifier.
i = 0 print i i = 5 if true print i i = 10 unless true print i
0 5 5
| Recommendation Don't use Statement with Modifier on a long line. In that case, you should just create a code block. |
Some common conditionals:
| Operator | Meaning | Example |
|---|---|---|
| == | equal | 5 == 5 |
| != | not equal | 0 != 5 |
| > | greater than | 4 > 2 |
| < | less than | 2 < 4 |
| >= | greater than or equal to | 7 >= 7 and 7 >= 4 |
| <= | less than or equal to | 4 <= 8 and 6 <= 6 |
Not Condition
To check if a condition is not true, you would use not.
i = 0
if not i > 5:
print 'i is not greater than 5'
i is not greater than 5
Combining Conditions
To check more than one condition, you would use and or or. Use parentheses ( ) to change the order of operations.
i = 5 if i > 0 and i < 10: print "i is between 0 and 10." if i < 3 or i > 7: print "i is not between 3 and 7." if (i > 0 and i < 3) or (i > 7 and i < 10): print "i is either between 0 and 3 or between 7 and 10."
Note that and requires that both comparisons are true, while or requires that only one is true or both are true.
i is between 0 and 10.
Exercises
- Given the numbers x = 4, y = 8, and z = 6, compare them and print the middle one.
Go on to Part 04 - Flow Control - Loops
