Conditionals
Learning Goals
- User comparison operators to compare variables, strings, and numbers
- Write and understand conditional logic
Technical Vocabulary
- Boolean
- Condition
- Conditionals
- Evaluate
- Expression
- Operators
- Statement
Conditionals
Every programming language has conditionals. If you’ve worked in Python or Java, you’ve probably seen something similar to what we’ll be working on today!
Conditionals let us instruct our program to do something if a certain condition is met. In one web application, there can be hundreds if not thousands of conditionals written into the code. Without these conditions, web applications wouldn’t be able to customize the experience for each user.
Comparison Operators
Swift gives us a way to compare values. Each expression below will be evaluated to a boolean, true or false.
3 < 5
//=> true
4 >= 9
//=> false
7 == 7
//=> true
"karlie" == "karlie"
//-> true
"karlie" == "Karlie"
//-> false
Notice the ==
. This checks if two pieces of data are equal to each other. The assignment operator (=
), assigns the value of a variable. These two are very different!
Explore: Operators
Look at each expression below and the value it evaluates to. Based on that information, try to determine what that operator does.
3 != 4
//=> true
5 != 5
//=> false
4 != 9
//=> true
11 % 2
//=> 1
32 % 6
//=> 2
16 % 3
//=> 1
15 % 3
//=> 0
The not equal
operator - !=
- checks that two values are not equal. It is the opposite of our ==
operator - the first =
is replaced with an !
.
The modulo
operator - %
- finds the remainder of two numbers. It is a helpful tool to determine if numbers are even or odd. Learn more here!
Comparing Variables
We can use our comparison operators on variables as well! Let’s look at this example:
var language = "Swift"
language == "swift"
//=> false
language == "Swift"
//=> true
"swift" == language
//=> false
var year = 2020
var nextYear = 2021
year > 2000
//=> true
year != 2019
//=> true
year < nextYear
//=> true
Try It: Comparison Operators
Declare two variables - firstName
and age
, and assign them to appropriate values. Now, check for the following things:
- Is your name the same as "Karlie"?
- Is your age the same as 15?
- Is your age not the same as 15?
- Is your age greater than 7?
- Is your age less than or equal to 10?
- Is your age less than or equal to 10?
- What is the remainder when you age is divided by 2?
Medium Challenge: Have you ever tried to create a password, but the application told you you need at least 8 characters? Time to solve a real-world challenge! Declare a new variable called fakePassword
and assign it to a string of your choice. Then, check that the value stored in fakePassword
is equal to or greater than 8 characters. Change the string that fakePassword
is assigned to a couple times to make 100% sure it's working as expected.
Conditionals
Just like in real life, programming is full of decisions. We usually make decisions based on our current state or mood.
A real-life example:
Am I hungry?
Yes ➡ I’ll eat
No ➡ I won’t eat
A programming example:
Do you have an account?
Yes ➡ Please log in
No ➡ Please create an account
Swift gives us a way to ask those questions and provide different outcomes based on the answer. They are called conditionals. Here’s an example:
var queen = "Beyoncé"
if queen == "Beyoncé" {
print("You are correct!")
} else {
print("Beyoncé is the only queen.")
}
For the example above, “You are correct!” will print to the console. Let’s break this down line-by-line.
var queen = "Beyoncé" // new variable created
if queen == "Beyoncé" { // program checks for this condition
// if it evaluates to true, it will execute this block
print("You are correct!")
} else { // if it evaluates to false, it will execute this block
print("Beyoncé is the only queen.")
}
We call this entire piece of code an if statement
.
After the keyword if
, we have to give Swift an expression that can evaluate to true
or false
. That expression is called a condition.
- If the condition evaluates to
true
, the code in the block below it will execute or run. It will then ignore the rest of the options. - If it evaluates to
false
, it will check the condition in the next block.
Try It: Conditionals
- Create a variable named
luckyNumber
and assign it to a number of your choice. - Write an if statement checking if
luckyNumber
is less than 50, which if evaluated to true, prints out a sentence (you choose!). If it is evaluated to false, it should print out a different sentence.
Medium Challenge: Using your luckyNumber
, write a new conditional. If the lucky number equals 13, the output should be "You got it!". If it is too high, the output should be "Guess lower...", and it is too low, the output should be "Guess higher..."
Spicy Challenge: Using your luckyNumber
, write a new conditional. If the lucky number equals 13, the output should be "You got it!". If it is not, the output should be customized based on how far the number is from the luckyNumber
. There should be one output when the number is within 10 of the lucky number, and one when there's a difference of more than 10. For example, if the number is 20, the output might be: "So close, you are just 7 off.". If the number is 100, the output might be "Ouch you are not even close. Off by 87!".
Sometimes we may want to provide more than two options. Look at the use of else if
:
var queen = "Beyoncé"
if queen == "Beyoncé" {
print("You are correct!")
} else if queen == "Elizabeth II" {
print("I guess you are technically right...")
} else {
print("Beyoncé is the only queen.")
}
Takeaways:
- We can use any comparison operator in a condition
- We can use strings or numbers in a condition
- If a condition evaluates to true, the code below (block) it will run
- Only one block of code will run for each
if
statement
Try It: Conditionals
- Create a variable named
favoriteFood
and assign it to a string of your favorite food - Write an if statement comparing your favorite to 'Chipotle', which if evaluated to true, prints out a sentence of your choice
- Write an else if statement comparing your favorite to 'Starbucks', which if evaluated to true, prints out a sentence of your choice
- Write another else if - you choose what you compare it to
- Write an else statement that prints out a sentence of your choice
- Try changing the value of your
favoriteFood
variable to "Chipotle", then "Starbucks" (if it wasn't already). Do you get what you expected?
Medium Challenge: Write a program that checks a string. It should print to the console "even" if the number of characters in the text is even, and "odd" if the number of characters in the text is odd.
Conditionals
Practice: Operators & Conditionals
For each of these exercises, you should use print
to print your output or feedback.
Declare a variable called numberOfScholars
and assign it to any number. Write a condition that checks the number of scholars. If there are less than 24, output "There is room for more - welcome!". If there are already 24 or 25 scholars, output "Oh no, we're going to have to put you on the waiting list." If there are more than 25 scholars, output "We are so sorry but we are booked. Would you like to sign up for next year?"
Medium Challenge: Declare a new variable number
and assign it to any number. If it is a multiple of 3, print "Fizz". If it is a multiple of 5, print "Buzz". If it is a multiple of both 3 and 5, print "FizzBuzz". If it isn't a multiple of 3 or 5, just print out the number.
Spicy Challenge: Have you ever tried to create a password, but the application told you that you need at least 1 number and between 8 and 14 characters total? Time to solve another real-world challenge! Declare a new variable called fakePassword
and assign it to a string of your choice. Write a conditional that checks the value of fakePassword
and gives appropriate feedback on if it is a valid password (contains at least 1 number and between 8 and 14 characters total).