Bird
Raised Fist0
Kotlinprogramming~3 mins

Why Range operator (..) and in operator in Kotlin? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could replace long, confusing checks with a simple, readable line of code?

The Scenario

Imagine you want to check if a number is between 1 and 10. Without special tools, you write many conditions like if (x >= 1 && x <= 10). Now imagine doing this for many ranges or checking many numbers one by one.

The Problem

This manual way is slow and easy to mess up. Writing many conditions takes time and can cause mistakes like wrong operators or missing boundaries. It also makes your code long and hard to read.

The Solution

The range operator .. creates a sequence of numbers easily, and the in operator checks if a value is inside that range. This makes your code shorter, clearer, and less error-prone.

Before vs After
✗ Before
if (x >= 1 && x <= 10) { println("In range") }
✓ After
if (x in 1..10) { println("In range") }
What It Enables

You can quickly and clearly check if values fall within ranges, making your programs easier to write and understand.

Real Life Example

Think about a game where you want to check if a player's score is within a winning range. Using in with .. lets you do this check in one simple line.

Key Takeaways

Manual range checks are long and error-prone.

The .. operator creates ranges easily.

The in operator checks if a value is inside a range simply.

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

  1. Step 1: Understand the range operator

    The .. operator creates a range including both start and end values.
  2. Step 2: Interpret 1..5

    This means all numbers from 1 up to 5, including 1 and 5.
  3. Final Answer:

    A range of numbers from 1 to 5 inclusive -> Option D
  4. 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

  1. Step 1: Recall Kotlin's in operator syntax

    Kotlin uses in to check if a value is inside a range.
  2. Step 2: Match syntax with options

    Only if (x in 10..20) correctly uses in and the range operator ...
  3. Final Answer:

    if (x in 10..20) { } -> Option B
  4. 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

  1. Step 1: Understand the range check

    The range 1..5 includes numbers 1, 2, 3, 4, 5.
  2. Step 2: Check if x=7 is in the range

    7 is not between 1 and 5, so the condition is false.
  3. Final Answer:

    Outside -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    No error, code runs fine -> Option C
  4. 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

  1. Step 1: Understand the range and step usage

    2..10 step 2 creates numbers 2, 4, 6, 8, 10.
  2. 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).
  3. Final Answer:

    for (i in 2..10 step 2) println(i) -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard