The range operator (..) helps create a sequence of values easily. The in operator checks if a value is inside that sequence.
When you want to repeat an action a certain number of times.
When you want to check if a number falls between two limits.
When you want to loop through a list of numbers or characters.
When you want to verify if a value exists within a range.
When you want to simplify conditions that check for value boundaries.
Syntax
Kotlin
val range = start..end
if (value in range) {
// do something
}
The .. operator creates a range from start to end, including both ends.
The in operator checks if a value is inside the range or collection.
Examples
This creates a range from 1 to 5 and prints the list [1, 2, 3, 4, 5].
Kotlin
val numbers = 1..5println(numbers.toList())
This checks if the letter 'c' is inside the range from 'a' to 'd'. It prints true.
Kotlin
val letterRange = 'a'..'d'println('c'in letterRange)
This loops from 1 to 3 and prints each number on its own line.
Kotlin
for (i in1..3) {
println(i)
}
Sample Program
This program checks if a score is within the passing range using the in operator. Then it prints numbers from 1 to 5 using the range operator in a loop.
Kotlin
fun main() {
val score = 85val passingRange = 60..100if (score in passingRange) {
println("You passed with a score of $score.")
} else {
println("You failed with a score of $score.")
}
println("Numbers from 1 to 5:")
for (num in1..5) {
print("$num ")
}
}
OutputSuccess
Important Notes
The range operator works with numbers and characters.
Ranges include both the start and end values.
You can use !in to check if a value is NOT in a range.
Summary
The .. operator creates a range of values.
The in operator checks if a value is inside that range.
Ranges are useful for loops and condition checks.
Practice
(1/5)
1. What does the Kotlin expression 1..5 represent?
easy
A. An error because ranges need parentheses
B. A list containing numbers 1 and 5 only
C. A function that returns 1 or 5
D. A range of numbers from 1 to 5 inclusive
Solution
Step 1: Understand the range operator
The .. operator creates a range including both start and end values.
Step 2: Interpret 1..5
This means all numbers from 1 up to 5, including 1 and 5.
Final Answer:
A range of numbers from 1 to 5 inclusive -> Option D
Quick Check:
1..5 = numbers 1 to 5 [OK]
Hint: Remember: .. includes both ends in Kotlin ranges [OK]
Common Mistakes:
Thinking it creates a list instead of a range
Assuming it excludes the last number
Confusing it with a function call
2. Which of the following is the correct syntax to check if variable x is between 10 and 20 inclusive in Kotlin?
easy
A. if (x between 10 and 20) { }
B. if (x in 10..20) { }
C. if (10 <= x <= 20) { }
D. if (x inside 10..20) { }
Solution
Step 1: Recall Kotlin's in operator syntax
Kotlin uses in to check if a value is inside a range.
Step 2: Match syntax with options
Only if (x in 10..20) correctly uses in and the range operator ...
Final Answer:
if (x in 10..20) { } -> Option B
Quick Check:
Use in with .. for range checks [OK]
Hint: Use 'in' with '..' for range checks in Kotlin [OK]
Common Mistakes:
Using 'between' or 'inside' which are not Kotlin keywords
Trying chained comparisons like 10 <= x <= 20
Missing the range operator '..'
3. What is the output of this Kotlin code?
val x = 7
if (x in 1..5) println("Inside") else println("Outside")
medium
A. Outside
B. Compilation error
C. Inside
D. No output
Solution
Step 1: Understand the range check
The range 1..5 includes numbers 1, 2, 3, 4, 5.
Step 2: Check if x=7 is in the range
7 is not between 1 and 5, so the condition is false.
Final Answer:
Outside -> Option A
Quick Check:
7 not in 1..5 means print "Outside" [OK]
Hint: Check if value lies within range boundaries [OK]
Common Mistakes:
Assuming 7 is inside 1..5
Confusing inclusive ranges with exclusive
Expecting a syntax error
4. Identify the error in this Kotlin code snippet:
for (i in 1..5)
if (i in 3..1) println(i)
medium
A. The for loop syntax is incorrect
B. The range 3..1 is invalid because start is greater than end
C. No error, code runs fine
D. The if condition should use 'not in' instead of 'in'
Solution
Step 1: Analyze the range 3..1
In Kotlin, a range with start greater than end (3..1) creates an empty range, which is valid.
Step 2: Verify code execution
The for loop runs for i=1 to 5, but i in 3..1 is always false for any i, so nothing prints. No syntax or runtime errors occur.
Final Answer:
No error, code runs fine -> Option C
Quick Check:
Empty ranges (start > end) are valid in Kotlin [OK]
Hint: Ranges with start > end are empty but valid [OK]
Common Mistakes:
Thinking reversed ranges like 3..1 are invalid
Assuming the for loop syntax is wrong
Expecting a syntax error or crash with empty range
5. You want to print all even numbers between 2 and 10 inclusive using a Kotlin for loop and range. Which code snippet correctly does this?
hard
A. for (i in 2..10 step 2) println(i)
B. for (i in 2..10) if (i % 2 != 0) println(i)
C. for (i in 2 until 10 step 2) println(i)
D. for (i in 2..10 step 3) println(i)
Solution
Step 1: Understand the range and step usage
2..10 step 2 creates numbers 2, 4, 6, 8, 10.
Step 2: Check each option
for (i in 2..10 step 2) println(i) prints 2,4,6,8,10 directly. for (i in 2..10) if (i % 2 != 0) println(i) checks i % 2 != 0 and prints odds 3,5,7,9. for (i in 2 until 10 step 2) println(i) uses until excluding 10 (2,4,6,8). for (i in 2..10 step 3) println(i) steps by 3 (2,5,8).
Final Answer:
for (i in 2..10 step 2) println(i) -> Option A
Quick Check:
Use step 2 with inclusive range for even numbers [OK]
Hint: Use 'step 2' with '..' to get even numbers directly [OK]
Common Mistakes:
Using wrong modulo condition like % 2 != 0
Using 'until' which excludes the end value
Using wrong step size like 3
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.