Kotlin - if...else Expression


Kotlin if...else expressions works like an if...else expression in any other Modern Computer Programming. So let's start with our traditional if...else statement available in Kotlin.

Syntax

The syntax of a traditional if...else expression is as follows:

if (condition) {
   // code block A to be executed if condition is true
} else {
  // code block B to be executed if condition is false
}

Here if statement is executed and the given condition is checked. If this condition is evaluated to true then code block A is executed, otherwise program goes into else part and code block B is executed.

Example

You can try the following example:

fun main(args: Array<String>) {
    val age:Int = 10

    if (age > 18) {
        print("Adult")
    } else {
        print("Minor")
    }
}

When you run the above Kotlin program, it will generate the following output:

Minor

Kotlin if...else Expression

Kotlin if...else can also be used as an expression which returns a value and this value can be assigned to a variable. Below is a simple syntax of Kotlin if...else expression:

Syntax

val result = if (condition) {
   // code block A to be executed if condition is true
} else {
  // code block B to be executed if condition is false
}

If you're using if as an expression, for example, for returning its value or assigning it to a variable, the else branch is mandatory.

Examples

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) {
        "Adult"
    } else {
        "Minor"
    }
    println(result)
}

When you run the above Kotlin program, it will generate the following output:

Minor

You can ommit the curly braces {} when if has only one statement:

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) "Adult" else  "Minor"
    println(result)
}

When you run the above Kotlin program, it will generate the following output:

Minor

You can include multiple statements in if...else block, in this case the last expression is returned as the value of the block. Try the following example:

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) {
        println("Given condition is true")
        "Adult"
    } else {
        println("Given condition is false")
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

When you run the above Kotlin program, it will generate the following output:

Given condition is false
The value of result : Minor

Kotlin if...else...if Ladder

You can use else if condition to specify a new condition if the first condition is false.

Syntax

if (condition1) {
  // code block A to be executed if condition1 is true
} else if (condition2) {
  // code block B to be executed if condition2 is true
} else {
  // code block C to be executed if condition1 and condition2 are false
}

Example

fun main(args: Array<String>) {
    val age:Int = 13

    val result = if (age > 19) {
        "Adult"
    } else if ( age > 12 && age  < 20 ){
        "Teen"
    } else {
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

When you run the above Kotlin program, it will generate the following output:

The value of result : Teen

Kotlin Nested if Expression

Kotlin allows to put an if expression inside another if expression. This is called nested if expression

Syntax

if(condition1) {
   // code block A to be executed if condition1 is true
   if( (condition2) {
      // code block B to be executed if condition2 is true
   }else{
      // code block C to be executed if condition2 is fals
   }
} else {
  // code block D to be executed if condition1 is false
}

Example

fun main(args: Array<String>) {
    val age:Int = 20 

    val result = if (age > 12) {
       if ( age > 12 && age  < 20 ){
           "Teen"
       }else{
           "Adult"
       }
    } else {
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

When you run the above Kotlin program, it will generate the following output:

The value of result : Adult

Quiz Time (Interview & Exams Preparation)

Answer : D

Explanation

All the mentioned statements are correct about Kotlin if expression.

Q 2 - Which of the following is not supported by Kotlin?

A - if...else if...else

B - if...then...else

C - if...else...

D - None of the above

Answer : B

Explanation

Kotlin does not support if...then...else statement.

Q 3 - What will be the output of the following code?

fun main(args: Array<String>) {

    var x = 20
    var y = 15
    var z = "Mango"

    val result = if (x > y ) {
       z = "Orange"
    } else {
       z = "Apple"
    }
    println("Value of result = $z")
}

A - Mango

B - Orange

C - Apple

D - None of the above

Answer : B

Explanation

Correct answer is Orange, because x is greater than y, so once this condition is true, it will assign Orange to z variable.

Advertisements