An else
-if
expression can be used to add a plethora of more conditionals for our program to evaluate.
Let’s say we created a Kotlin program that determines what we will wear depending on the temperature outside. If we just use an if
/else
expression, our options are limited:
var temp = 60 if (temp > 65) { println("Wear a t-shirt") } else { println("Wear a winter coat") } // Prints: Wear a winter coat
In real life, wearing a winter coat in 60-degree weather can cause a person to overheat. We need to wear something in between a heavy coat and a t-shirt, like a light jacket. We can place an else
-if
expression in our code to represent this “in-between” situation:
var temp = 60 if (temp > 65) { println("Wear a t-shirt") } else if (temp > 45) { println("Wear a light coat") } else { println("Wear a winter coat") } // Prints: Wear a light coat
Let’s examine this else
-if
statement:
- The
else
-if
expression must come after anif
expression but before theelse
expression. - The
else
-if
expression contains its own condition placed within parentheses:temp > 45
.
The instruction println("Wear a light coat")
is executed only if the condition in the if
expression is false
and the condition within the else
-if
expression is true
. If both conditions are false, the instructions in the next conditional, the else
expression, will execute.
An if
-else
expression can contain as many else
-if
expressions as needed. When using multiple else
-if
statements, the order in which they appear matters. The moment the program evaluates one of the conditionals as true
, the program will execute that body of code and will not evaluate any of the conditionals that appear after.
Instructions
The local coffee shop started a rewards program based on the amount of coffee a customer buys. Use your knowledge of conditionals to create a program that determines what kind of member a customer is based on the amount of rewards points they have.
If rewardsPoints
is greater than or equal to 50
:
- Set the value of
memberType
to"Platinum"
.
Otherwise, if rewardsPoints
is greater than or equal to 25
:
- Set the value of
memberType
to"Gold"
.
Otherwise, if rewardsPoints
is greater than or equal to 10
:
- Set the value of
memberType
to"Silver"
.
Else:
- Set the value of
memberType
to"Bronze"
.
Outside of the conditional expressions, use println()
and a String template to output the following:
You are a [memberType] type member.