In Kotlin, if can give back a value. This helps write shorter and clearer code by choosing a value based on a condition.
When you want to pick one value or another based on a condition.
When you want to assign a variable a value depending on a check.
When you want to return a value from a function based on a condition.
When you want to avoid writing extra lines for simple choices.
Syntax
Kotlin
val result = if (condition) value1 else value2
The if expression must have an else part to cover all cases.
You can use multiple lines inside if and else blocks, but the last expression is returned.
Examples
Choose the bigger number between a and b.
Kotlin
val max = if (a > b) a else b
Return "Pass" or "Fail" based on the score.
Kotlin
val message = if (score >= 50) "Pass"else"Fail"
Print a message and return x or -x depending on x.
Kotlin
val result = if (x > 0) {
println("Positive")
x
} else {
println("Not positive")
-x
}
Sample Program
This program uses if as an expression to find the bigger number and to decide pass or fail.
Kotlin
fun main() {
val a = 10val b = 20val max = if (a > b) a else b
println("The bigger number is $max")
val score = 45val result = if (score >= 50) "Pass"else"Fail"println("Result: $result")
}
OutputSuccess
Important Notes
Remember, if as an expression always returns a value.
Without else, if cannot be used as an expression because Kotlin needs to know what to return in all cases.
Summary
if can return a value in Kotlin, making code shorter and clearer.
Always include else when using if as an expression.
You can assign the result of if directly to variables or return it from functions.
Practice
(1/5)
1. What does it mean when if is used as an expression in Kotlin?
easy
A. It returns a value that can be assigned to a variable.
B. It can only be used without an else block.
C. It cannot be used inside functions.
D. It always causes a syntax error.
Solution
Step 1: Understand if as expression concept
In Kotlin, if can return a value, unlike some other languages.
Step 2: Recognize usage in assignments
This means you can assign the result of an if expression directly to a variable.
Final Answer:
It returns a value that can be assigned to a variable. -> Option A
Quick Check:
if returns value = D [OK]
Hint: Remember: Kotlin's if returns a value, assignable to variables [OK]
Common Mistakes:
Thinking if cannot return values
Forgetting to include else block
Assuming if is only a statement
2. Which of the following is the correct syntax to assign the result of an if expression to a variable in Kotlin?
easy
A. val result if (x > 0) = "Positive" else "Non-positive"
B. val result = if (x > 0) "Positive" else "Non-positive"
C. val result = if (x > 0) { "Positive" }
D. val result = if x > 0 then "Positive" else "Non-positive"
Solution
Step 1: Check correct Kotlin if expression syntax
The correct syntax uses if (condition) value1 else value2 inside an assignment.
Step 2: Identify errors in other options
val result if (x > 0) = "Positive" else "Non-positive" has wrong order, C misses else, D uses invalid keywords.
Final Answer:
val result = if (x > 0) "Positive" else "Non-positive" -> Option B
Quick Check:
Correct syntax with else = A [OK]
Hint: Always include else and use parentheses in if expression [OK]
Common Mistakes:
Omitting else block
Wrong keyword order
Missing parentheses around condition
3. What is the output of the following Kotlin code?
val x = 5
val result = if (x % 2 == 0) "Even" else "Odd"
println(result)
medium
A. Even
B. 5
C. Odd
D. SyntaxError
Solution
Step 1: Evaluate the condition x % 2 == 0
Since 5 % 2 equals 1, the condition is false.
Step 2: Determine which branch executes
Because the condition is false, the else branch returns "Odd".
Final Answer:
Odd -> Option C
Quick Check:
5 is odd = C [OK]
Hint: Check condition result carefully to pick correct branch [OK]
Common Mistakes:
Assuming 5 is even
Ignoring else branch
Confusing modulo operation
4. Identify the error in this Kotlin code using if as an expression:
val x = 10
val result = if (x > 5) "Big"
medium
A. Incorrect variable declaration
B. Extra parentheses in if condition
C. Wrong comparison operator
D. Missing else branch for the if expression
Solution
Step 1: Check if expression completeness
When using if as an expression, Kotlin requires an else branch to cover all cases.
Step 2: Identify missing else branch
The code lacks an else branch, causing a compilation error.
Final Answer:
Missing else branch for the if expression -> Option D
Quick Check:
if expression needs else = B [OK]
Hint: Always add else when if returns a value [OK]
Common Mistakes:
Omitting else block
Assuming if can be incomplete
Ignoring compiler errors
5. You want to write a Kotlin function that returns "Positive", "Negative", or "Zero" based on an integer input using if as an expression. Which code correctly implements this?
hard
A. fun checkNumber(n: Int): String = if (n > 0) "Positive" else if (n < 0) "Negative" else "Zero"
B. fun checkNumber(n: Int): String { if (n > 0) return "Positive" else if (n < 0) return "Negative" else return "Zero" }
C. fun checkNumber(n: Int): String = if (n > 0) "Positive" else "Negative"
D. fun checkNumber(n: Int): String = if n > 0 then "Positive" else if n < 0 then "Negative" else "Zero"
Solution
Step 1: Understand nested if as expression
Kotlin allows nested if expressions to return values in a single expression.
Step 2: Check each option for correctness
fun checkNumber(n: Int): String = if (n > 0) "Positive" else if (n < 0) "Negative" else "Zero" correctly uses nested if expressions with proper syntax and returns all cases. fun checkNumber(n: Int): String { if (n > 0) return "Positive" else if (n < 0) return "Negative" else return "Zero" } uses statements, not expression style. fun checkNumber(n: Int): String = if (n > 0) "Positive" else "Negative" misses the zero case. fun checkNumber(n: Int): String = if n > 0 then "Positive" else if n < 0 then "Negative" else "Zero" uses invalid syntax.
Final Answer:
fun checkNumber(n: Int): String = if (n > 0) "Positive" else if (n < 0) "Negative" else "Zero" -> Option A
Quick Check:
Nested if expression with else = A [OK]
Hint: Use nested if-else expressions for multiple return values [OK]
Common Mistakes:
Missing else for zero case
Using statement style instead of expression
Incorrect syntax with then keyword
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.