Welcome to the Decision Structures Crash Course! Here's what we'll be covering:
if statementselse statementselse if statementsif statementsRecall that boolean is a data type that can take on a value
of either true or false. We will be using booleans to help the
computer make decisions for us.
Booleans can be created by either:
boolean variable, ortrue or
false (called boolean expressions).We have already seen how to declare a boolean variable in previous crash courses, so let's have
a look at using boolean or comparison operators to generate boolean expressions.
We can use comparison operators to compare two things (who would've thought!). Once compared, the computer
tells us whether or not the comparison was true or false.
Here are some
examples of boolean expressions,
2000 < 2019 outputs a value of true1 == 2 outputs a value of false10.1 >= 10.0 outputs a value of trueWe call the < , == , and >= comparison operators. As you have likely
guessed, the comparison operators used in the examples were 'less than', 'equal to', and 'greater than or
equal to' (if we are speaking from the left side of the operator) respectively. However, there is no need to
memorize. Below is a table of all the comparison operators.
| # | Operator | English Translation |
|---|---|---|
| 1 | < | less than |
| 2 | <= | less than or equal to |
| 3 | > | greater than |
| 4 | >= | greater than or equal to |
| 5 | == | equal to |
| 6 | != | not equal to |
These comparison operators give us basic decision making power, but sometimes we need to consider more than one condition when making decisions. For this, we have what are called logical operators. These allow us to chain boolean expressions together into mega boolean expressions for more complex decision making.
Consider the following: I want to make spaghetti, so I need to make sure I have all the ingredients. This means that in order to make spaghetti, I need pasta and sauce and meatballs and cheese.
Assuming these variables were defined previously in the code, this can be translated into the boolean
expression, pasta && sauce && meatballs && cheese, where && is the logical
operator 'and'. This boolean expression would have to output a value of true for me to commit
to making spaghetti (i.e. each of the boolean variables must have a value of
true).
Again, no memorization required. You can always refer to the table below for all the logical operators.
| # | Operator | English Translation |
|---|---|---|
| 1 | && | and |
| 2 | || | or |
If you replace all the && operators in the spaghetti example with || operators, you
will need to have at least one of the ingredients listed for the boolean expression to be true.
In this case, using || operators is the wrong choice since you don't want to be cleared by your
program to make spaghetti only to find out that you'll be eating plain pasta for dinner. As such, it is
important to be careful when deciding how to set up your boolean expressions so that the computer makes
the right decision every time.
Let's get a feel for how to use booleans practically.
boolean variable called i_can_code and assign it a value of
true. This is the simplest way to define a booelan variable.float variable named age and assign it the value of your
age.boolean variable called is_youth and set it to a
boolean expression that outputs a value of true when age is less than
or equal to 17. This is a better example of how we will be using boolean
expressions later on.is_youth to the console (it should print a value of
true... right?).
The if statement is the basic building block for decision making. Here is the syntax of an
if statement in its most
basic form:
if (condition_being_checked)
{
//if the condition is true, run the code written here
}
The computer interprets this quite intuitively, saying, "If the condition being checked is true, then run the code inside the curly braces."
Note how the if statement doesn't require any semi-colons (a.k.a the 'do nothing' operator). In
fact,
if you do add a semi-colon like this,
if (condition_being_checked);
{
//if the condition is true, run the code written here
}
the
code inside the curly braces will run regardless of if the condition being checked in the if
statement was
true. This is because the semi-colon terminated the if statement and then the code inside the
curly
braces runs just like regular code.
Let's get the computer to tell us if we need to wear a jacket outside. Our choice should depend on the weather which can be described by the temperature and the probability of precipitation.
float variables named temperature and precip
and
assign them values of 10 and 5 respectively.if statement that runs if the temperature is below 15 degrees Celsius or
the probability of precipitation is higher than 30%."Take a jacket!" to the console.
An else statement is optional, but can be added after an if statement if you want
the computer to do something after finding that the condition being checked was false. In other
words, code in
the
else block only runs when the condition in the if statement is false.
Here is a quick example of the use of an else statement:
if (condition_being_checked)
{
//if the condition is true, run the code written here
}
else
{
//run this code if the condition being checked was false
}
Simply put, else if statements are the streamlined equivalent of putting an if
statement inside an else statement. Use these when you want to check for another condition only
once another condition is false. The syntax is as follows:
if (1st_condition_being_checked)
{
//if the 1st condition is true, run the code written here and exit the if statement
}
else if (2nd_condition_being_checked)
{
//run this code if the 1st condition was false and the 2nd condition was true
}
You can add as many consecutive else if statements as you wish. As with all else
statements, an else statement at the end of your chain of else if statements is
optional.
The practice of "nesting" consists of putting one thing inside another. A nested if statement,
then, is simply putting an if statement inside another. Nested if statements are
basically the opposite of else if statements. The code inside an
else if block only runs if the condition in the preceding if statement was
false,
and the code inside a nested if statement only runs if the
condition in the preceding if statement was true.
You can probably picture it already, but
here is a sample of a nested if statement.
if (condition)
{
//the 2nd if statement is only considered if the 1st condition is true
if(2nd_condition)
{
//run this code if the 2nd condition is true
}
}
Congratulations! You've completed the Decision Structures Crash Course. Move on to 4. Repetition Structures to keep learning (there are 4 parts!).