This post talks about how to write a ternary conditional operator with examples from Kotlin

In Java, ternary operators are written with the following syntax

condition? true_block? false_block

condition is evaluated and executes true_block if true, else false_block is executed.

There are no conditional operators in Kotlin. We can use conditional expressions such as if, when and try syntax

Kotlin Ternary Conditional Operator examples

  • Using if blocks

We can write a simplified version in a single statement.

if (conditional_expression) block1 else block2

Conditional expressions are evaluated, executes block1 if the condition is true, else block2 is executed. For example,

val number = -20
 if(number>0) "+ve" else "-ve"

assign the if expressions to a variable,

val number = -20
var numberString = if(number>0) "+ve" else "-ve"

java does not allow assigning if the expression results in a variable.

  • using when

when used to construct the similarity of if and else blocks in a readable way. Here is a syntax

when(condition) {
    expression1 -> block1
    expression2 -> block2
}

Here is an example

val number =1
when (number) { 
    1 -> print("1") 
    0 -> print("0") 
    else -> {  
        print("Not 0 and 1") 
    } 
}
  • using the Elvis operator for checking nullable variables

This is useful for null checking with simplified expressions. variable1 =variable2 ?: value

the left side of the ?: operator is a variable or expression and checked for null, if it is not null, return it, else return the right side of ?: i.e value.

if variable 2 is not null, return variable2 if variable2 is null, returns value.

Here is an example

val a=null
val b=20;
val c= a ?: b

The same can be written using the below

vale c=if ( a != null ) a else b