Bird
Raised Fist0
Kotlinprogramming~5 mins

Elvis operator (?:) for default values in Kotlin

Choose your learning style10 modes available
Introduction

The Elvis operator helps you give a default value when something might be missing or null. It keeps your code safe and simple.

When you want to use a value but it might be null, so you need a backup value.
When reading user input that might be empty or missing.
When working with data from the internet or a database that can be null.
When you want to avoid errors caused by null values in your program.
Syntax
Kotlin
val result = value ?: defaultValue

The operator ?: checks if value is null.

If value is not null, it uses value. Otherwise, it uses defaultValue.

Examples
If name is null, displayName becomes "Guest".
Kotlin
val name: String? = null
val displayName = name ?: "Guest"
Since age is 25 (not null), displayAge is 25.
Kotlin
val age: Int? = 25
val displayAge = age ?: 18
If the user enters nothing (null), safeInput will be "No input provided".
Kotlin
val input: String? = readLine()
val safeInput = input ?: "No input provided"
Sample Program

This program shows how the Elvis operator gives default values when variables are null.

Kotlin
fun main() {
    val userName: String? = null
    val displayName = userName ?: "Anonymous"
    println("Hello, $displayName!")

    val userScore: Int? = 42
    val finalScore = userScore ?: 0
    println("Your score is $finalScore.")
}
OutputSuccess
Important Notes

The Elvis operator is a quick way to avoid writing if-else checks for null.

It only works when the left side can be null.

You can use it with any type, not just strings.

Summary

The Elvis operator ?: provides a default value if something is null.

It helps keep your code clean and safe from null errors.

Use it whenever you want a simple fallback value.

Practice

(1/5)
1. What does the Elvis operator ?: do in Kotlin?
easy
A. Checks if two values are equal
B. Converts a value to a string
C. Throws an exception if the left value is null
D. Returns the left value if it is not null; otherwise returns the right value

Solution

  1. Step 1: Understand the Elvis operator purpose

    The Elvis operator ?: is used to provide a default value when the left side is null.
  2. Step 2: Analyze the behavior

    If the left value is not null, it returns that value; otherwise, it returns the right value as a fallback.
  3. Final Answer:

    Returns the left value if it is not null; otherwise returns the right value -> Option D
  4. Quick Check:

    Elvis operator = default value if null [OK]
Hint: Elvis operator gives a fallback value if null [OK]
Common Mistakes:
  • Thinking it compares two values
  • Assuming it throws an error on null
  • Confusing it with string conversion
2. Which of the following is the correct syntax to use the Elvis operator in Kotlin?
easy
A. val result = value ??: defaultValue
B. val result = value ? defaultValue
C. val result = value ?: defaultValue
D. val result = value ?:? defaultValue

Solution

  1. Step 1: Recall the correct Elvis operator syntax

    The Elvis operator is written as ?: without any extra characters or spaces.
  2. Step 2: Match the syntax with options

    val result = value ?: defaultValue uses ?: correctly between the variable and the default value.
  3. Final Answer:

    val result = value ?: defaultValue -> Option C
  4. Quick Check:

    Correct Elvis syntax = value ?: defaultValue [OK]
Hint: Elvis operator is ?: exactly, no extra symbols [OK]
Common Mistakes:
  • Using single question mark instead of ?:
  • Adding extra question marks
  • Swapping the order of symbols
3. What will be the output of this Kotlin code?
val name: String? = null
val displayName = name ?: "Guest"
println(displayName)
medium
A. null
B. Guest
C. name
D. Compilation error

Solution

  1. Step 1: Check the value of name

    The variable name is explicitly set to null.
  2. Step 2: Apply the Elvis operator

    Since name is null, displayName gets the default value "Guest".
  3. Final Answer:

    Guest -> Option B
  4. Quick Check:

    null ?: "Guest" = "Guest" [OK]
Hint: If left is null, Elvis returns right side [OK]
Common Mistakes:
  • Assuming it prints null
  • Thinking it prints variable name
  • Expecting a compile error
4. Identify the error in this Kotlin code snippet using the Elvis operator:
val input: String? = null
val output = input ? "Default"
medium
A. Incorrect operator used; should be ?: instead of ?
B. Missing right side value after Elvis operator
C. Variable input cannot be nullable
D. No error; code is correct

Solution

  1. Step 1: Examine the operator used

    The code uses ? instead of the Elvis operator ?:.
  2. Step 2: Understand correct Elvis operator usage

    The Elvis operator must be ?: to provide a default value when the left side is null.
  3. Final Answer:

    Incorrect operator used; should be ?: instead of ? -> Option A
  4. Quick Check:

    Elvis operator must be ?: not ? [OK]
Hint: Elvis operator always uses ?: not just ? [OK]
Common Mistakes:
  • Using single question mark instead of Elvis operator
  • Forgetting the default value after ?:
  • Assuming nullable variables cause error here
5. Given the following Kotlin code, what will be the value of finalScore?
fun calculateScore(score: Int?): Int {
    return score ?: 0
}

val userScore: Int? = 5
val finalScore = calculateScore(userScore ?: 10)
hard
A. 5
B. 10
C. 0
D. Compilation error

Solution

  1. Step 1: Evaluate the expression inside the function call

    The argument is userScore ?: 10. Since userScore is 5 (not null), the expression evaluates to 5.
  2. Step 2: Call calculateScore with 5

    The function returns the score if not null, so it returns 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    userScore ?: 10 = 5, function returns 5 [OK]
Hint: Elvis operator picks first non-null value [OK]
Common Mistakes:
  • Thinking userScore ?: 10 returns 10
  • Confusing function return with argument default
  • Assuming null causes error here
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard