Kotlin if-else statement
If statements, commonly found in most programming languages, are control flow structures used to direct or alter the execution path of a program based on specific conditions. It’s no different for Kotlin, in Kotlin we use if statements to decide what block of code to execute if certain predefined conditions are met or not.
A key feature of Kotlin’s if statement in is that the if construct is not merely a statement, but an expression, meaning it can return a value. This allows the result of an if-else block to be assigned directly to a variable, leading to more concise and functional style code.
Kotlin provides the when statement, which can be seen as a more powerful and flexible version of the traditional switch statement, and can also be used in place of complex if-else if chains.
Kotlin if statement syntax
The general syntax consists of the if keyword, followed by a condition enclosed in parentheses, and a block of code within curly braces that executes only if the condition is true.
This is the general syntax of the if statement in Kotlin, let’s explore some examples
Example one (1):
Suppose you have a variable that holds the temperature of a room. Write a Kotlin program that prints "It’s warm" only if the temperature is above 25 degrees. If it’s 25 or below.
Solution one(1):
Output:
Example two(2):
Suppose we have a bag full of oranges, some green, some yellow, and some orange (in color). We need to filter out the green (unripe) oranges and count the number of yellow and orange-colored ones. Write a Kotlin program to achieve this.
Solution two(2):
Output:
So, this Kotlin program counts ripe oranges (yellow or orange). It starts with a list of orange colors and a counter set to 0. Using a for loop, it checks each orange. The condition orange == "yellow" || orange == "orange" determines if the orange is ripe. If true, the counter increases by 1. After checking all oranges, it prints the total ripe count.
Kotlin else if clause
Sometimes, you may need to check multiple different conditions when making decisions in your code. In such cases, Kotlin provides the else if clause, which lets you test another condition if the initial if condition is false. This allows your program to choose between several possible actions based on varying inputs, states, or conditions.
So, from the code above, notice how if the first condition is not met, the code checks the second condition, and if that is also not met, it checks the third condition. This process of evaluating a chain of multiple conditions is made possible by using the else if clause. The else if clause allows us to check for multiple conditions one after another. Let’s explore some examples of how we can use the else if clause.
Example three(3):
Let’s revisit Example 2 and update the problem: Suppose we have a bag full of oranges, some green, some yellow, and some orange (in color). We need to count the number of green (unripe) oranges, yellow (semi-ripe) oranges, and orange-colored (ripe) oranges, and determine the count of each type.
Solution:
Output:
From the example above, we can clearly see how the code checks each type of orange using separate conditions. The first if clause checks for green oranges, the next else if clause checks for yellow oranges, and the third checks for orange-colored oranges. Clearly, the else if clause gives us the flexibility to make more precise decisions in our program.
Let’s observe the else if clause flow diagram below.
We have seen how the if clause allows us to run a block of code based on a specific condition. We have also seen how the else if clause lets us define multiple conditions, logically determining which block of code to execute.
But what happens if the program evaluates all of these conditions and none of them resolve to true? What should our code do then? This is where the else clause comes into play.
Kotlin else clause
The else clause provides a default block of code to run when none of the preceding if or else if conditions are met. It acts as a catch-all ensuring that your program has a specific action to perform in any situation.
Unlike if and else if, the else clause does not have its own condition; it simply executes if all other conditions have failed. Let’s explore example four(4)
Example Four(4)
Suppose we are building a simple automated grading system for a school. The program must evaluate a student's numerical test score and assign a corresponding performance message based on a set of rules.
The rules for grading are as follows:
A score of 90 or higher should receive an "Excellent" message.
A score from 80 up to 89 should receive a "Good job" message.
A score from 70 up to 79 should receive a "You passed" message.
Any score below 70 is considered a failing grade and should receive a message encouraging the student to try again.
Write a Kotlin program that takes a single score as input and uses conditional logic to print the correct message to the console.
Solution
Output
This structure guarantees that exactly one block of code will be run. As soon as the program finds a condition that is true, it runs that block and skips all the rest. If no conditions are true, the else block is run.
Exercise
Suppose you are developing a simple application that provides a personalized greeting to a user based on the current time of day. The program will use a 24-hour format to represent the current hour (e.g., 9 for 9 AM, 13 for 1 PM, 22 for 10 PM).
The program must follow these rules to generate the correct greeting:
If the hour is before 12 (noon), it should print "Good morning!"
If the hour is from 12 up to 17 (5 PM), it should print "Good afternoon!"
If the hour is from 17 up to 20 (8 PM), it should print "Good evening!"
For any other time (i.e., from 8 PM onwards), it should print "Good night!"
Your Task:
Write a Kotlin program that takes an integer representing the current hour and uses an if-else if-else structure to print the appropriate greeting to the console.
The if, else if, and else structure in Kotlin provides a clear and efficient method for controlling program flow. It evaluates conditions sequentially and executes the corresponding block, ensuring consistent and logical execution.