📖 Scenario: Imagine you are building a simple program that handles different types of inputs. Sometimes the input is a number, and sometimes it is text. You want to check the type of the input to decide what to do next.
🎯 Goal: You will create a Kotlin program that uses the is operator to check the type of a variable and print a message based on whether it is an Int or a String.
📋 What You'll Learn
Create a variable named input with a specific value.
Create a variable named message to hold the result message.
Use the is operator to check if input is an Int or a String.
Assign the correct message to message based on the type check.
Print the message.
💡 Why This Matters
🌍 Real World
Type checking is useful when you receive data that can be different types, like user input or data from the internet. It helps your program decide what to do next safely.
💼 Career
Understanding type checking is important for writing safe and bug-free Kotlin programs, especially in Android app development and backend services.
Progress0 / 4 steps
1
Create the input variable
Create a variable called input and set it to the integer value 42.
Kotlin
Hint
Use val input: Any = 42 to create the variable.
2
Create the message variable
Create a variable called message and set it to an empty string "".
Kotlin
Hint
Use var message: String = "" to create the variable.
3
Use the is operator to check the type
Use an if statement with the is operator to check if input is an Int. If yes, set message to "Input is an integer". Otherwise, check if input is a String and set message to "Input is a string".
Kotlin
Hint
Use if (input is Int) and else if (input is String) to check types.
4
Print the message
Write a println statement to print the value of message.
Kotlin
Hint
Use println(message) to show the message.
Practice
(1/5)
1. What does the is operator do in Kotlin?
easy
A. Checks if a variable is of a specific type
B. Changes the type of a variable
C. Creates a new variable
D. Deletes a variable
Solution
Step 1: Understand the purpose of is operator
The is operator is used to check if a variable holds a value of a certain type.
Step 2: Differentiate from other options
It does not change, create, or delete variables; it only checks type.
Final Answer:
Checks if a variable is of a specific type -> Option A
Quick Check:
Type check = A [OK]
Hint: Remember: is means 'is this type?' check [OK]
Common Mistakes:
Thinking is changes the variable type
Confusing is with variable creation
Assuming is deletes variables
2. Which of the following is the correct syntax to check if obj is a String in Kotlin?
easy
A. if (obj instanceof String)
B. if (obj is String)
C. if (obj type String)
D. if (obj == String)
Solution
Step 1: Recall Kotlin syntax for type checking
Kotlin uses is keyword to check types, not instanceof or other keywords.
Step 2: Match the correct syntax
The correct syntax is if (obj is String).
Final Answer:
if (obj is String) -> Option B
Quick Check:
Correct syntax = C [OK]
Hint: Use is keyword, not Java's instanceof [OK]
Common Mistakes:
Using Java syntax instanceof in Kotlin
Writing obj type String which is invalid
Comparing with == instead of type check
3. What will be the output of this Kotlin code?
fun checkType(x: Any) {
if (x is Int) {
println(x + 5)
} else {
println("Not an Int")
}
}
checkType(10)
checkType("Hello")
medium
A. Error at runtime
B. 10
Not an Int
C. 15
Hello5
D. 15
Not an Int
Solution
Step 1: Analyze the first call checkType(10)
10 is an Int, so inside the if block, x + 5 equals 15, printed as "15".
Step 2: Analyze the second call checkType("Hello")
"Hello" is not an Int, so else block runs printing "Not an Int".
Final Answer:
15
Not an Int -> Option D
Quick Check:
Int check prints sum, else prints message = A [OK]
Hint: If is true, use variable as that type inside block [OK]
Common Mistakes:
Assuming string "Hello" can be added to 5
Expecting runtime error instead of else output
Confusing output order
4. Identify the error in this Kotlin code snippet:
fun printLength(obj: Any) {
if (obj is String) {
println(obj.length())
}
}
medium
A. No error, code is correct
B. Missing else block after if
C. Using parentheses with length property
D. Incorrect use of is operator
Solution
Step 1: Check usage of length on String
In Kotlin, length is a property, not a function, so it should not have parentheses.
Step 2: Confirm other parts are correct
The is operator is used correctly and else block is optional.
Final Answer:
Using parentheses with length property -> Option C
Quick Check:
Property access no parentheses = D [OK]
Hint: Remember: Kotlin properties have no parentheses [OK]
Common Mistakes:
Adding parentheses to properties like length
Thinking else block is mandatory
Misusing is operator syntax
5. Given a list of Any elements, how can you create a new list containing only the strings using the is operator in Kotlin?
hard
A. val strings = list.filterIsInstance<String>()
B. val strings = list.filter { it is String }
C. val strings = list.map { if (it is String) it else null }
D. val strings = list.filter { it == String }
Solution
Step 1: Understand filtering by type
To get only strings, Kotlin provides filterIsInstance<String>() which filters elements by type safely.
Step 2: Evaluate other options
val strings = list.filter { it is String } filters by is String but keeps type as Any, not cast to String. val strings = list.map { if (it is String) it else null } maps to nullable list, not filtering. val strings = list.filter { it == String } compares with type itself, which is invalid.
Final Answer:
val strings = list.filterIsInstance<String>() -> Option A
Quick Check:
Use filterIsInstance for type filtering [OK]
Hint: Use filterIsInstance to get typed list quickly [OK]
Common Mistakes:
Using filter without casting
Mapping to nullable instead of filtering
Comparing element to type object
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.