8.1. Intro: What we can do with Turtles and Conditionals

So far, our programs have either been a series of statements which always execute sequentially or operations that are applied to each item in an iterable. Yet programs frequently need to be more subtle with their behavior. For example, a messaging app might only set a message’s title bold if it has not been read by the user. Or a video game needs to update the position of all the characters that are not asleep. This is done with something called a selection or a conditional statement.

In the context of turtle drawings, using this kind of statement will allow us to check conditions and change the behavior of the program accordingly

In the above code, we first set amy’s pen color to be “Pink” and then move her forward. Next we want one of two actions to happen, either amy should move right and then forward, or left and then forward. The direction that we want her to go in depends on her pen color. If her pen color is set to pink - which is determined by writing amy.pencolor() == "Pink" which checks to see if the value returned by amy.pencolor() is the equivalent to the string “Pink” - then we should have her move right and forward. Else (or otherwise) she should move left and forward. Both things can’t happen though. She can’t move right, forward and left, forward. We then do the same thing for kenji, though in this case, we didn’t change kenji’s pen color.

It might seem a bit odd to add the conditionals in this example. Wouldn’t we already know that we set up amy and kenji’s colors, so why would we need a conditional? While it’s true that this isn’t the best place to use a conditional, we can combine conditional statements with for loops to make something pretty cool!

The above example combines a for loop with a set of conditional statements. Here, we loop through a list of colors and each iteration checks to see what amy’s pen color is. Depending on the pen color, the turtle will move in a certain direction, for a certain distance. Before the for loop iterates, amy’s pen color is changed to whatever color is in the for loop and it continues. Note how the color doesn’t change until the end, so that we can start using whatever color amy is set to initally. This means that the last color in the list colors will not be used, though you can see how the icon changes to the appropriate color.

This chapter will further detail how to use conditional statements.

8.1.1. Learning Goals

  • To understand boolean expressions and logical operators
  • To understand conditional execution
  • To be able to write a boolean function
  • To know when to use binary, unary, chained and nested conditional statements

8.1.2. Objectives

  • To properly evaluate a (compound) boolean expression
  • To use parenthesis to properly demonstrate operator precedence
  • To use conditional statements to properly branch code
Next Section - 8.2. Boolean Values and Boolean Expressions