Bird
Raised Fist0
Kotlinprogramming~5 mins

For loop with index (withIndex) in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the withIndex() function do in a Kotlin for loop?
It allows you to loop over a collection while accessing both the index and the value of each element at the same time.
Click to reveal answer
beginner
How do you access the index and value inside a for loop using withIndex()?
You can use destructuring syntax: for ((index, value) in collection.withIndex()) where index is the position and value is the element.
Click to reveal answer
intermediate
Why is using withIndex() better than manually managing an index variable in a loop?
Because it is cleaner, less error-prone, and Kotlin handles the index automatically, so you don’t have to update it yourself.
Click to reveal answer
beginner
Write a simple Kotlin for loop using withIndex() to print each index and value from a list of fruits.
Example:
val fruits = listOf("Apple", "Banana", "Cherry")
for ((index, fruit) in fruits.withIndex()) {
println("Fruit at index $index is $fruit")
}
Click to reveal answer
beginner
Can withIndex() be used with arrays and other collections in Kotlin?
Yes, withIndex() works with arrays, lists, and any iterable collection to provide index-value pairs.
Click to reveal answer
What does withIndex() return when called on a list?
AOnly the values of the list
BOnly the indexes of the list
CA sequence of index-value pairs
DA reversed list
How do you write a for loop to get both index and value from a list items?
Afor (item in items.withIndex())
Bfor ((index, item) in items.withIndex())
Cfor (index, item in items)
Dfor (index in items)
Which of these is a benefit of using withIndex() in Kotlin loops?
AIt filters out null values
BIt automatically sorts the list
CIt converts the list to a map
DIt provides both index and value without manual index tracking
What happens if you use for (index in list.withIndex()) without destructuring?
AYou get a pair object containing index and value
BYou get the index only
CYou get the value only
DYou get a compile error
Can withIndex() be used with arrays in Kotlin?
AYes, arrays and other iterable collections
BOnly with maps
CNo, only lists
DOnly with strings
Explain how to use withIndex() in a Kotlin for loop to access both index and value.
Think about how you get both position and element in the loop.
You got /4 concepts.
    Why is using withIndex() preferred over manually incrementing an index variable in loops?
    Consider what problems manual index management can cause.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the withIndex() function do in a Kotlin for loop?
      easy
      A. It filters elements based on their index.
      B. It sorts the list before looping.
      C. It provides both the index and the value of each element during iteration.
      D. It reverses the list before looping.

      Solution

      1. Step 1: Understand the purpose of withIndex()

        The withIndex() function returns an iterable of pairs containing the index and the value of each element in the collection.
      2. Step 2: Identify what the loop receives

        Using withIndex() in a for loop allows access to both the position (index) and the element (value) simultaneously.
      3. Final Answer:

        It provides both the index and the value of each element during iteration. -> Option C
      4. Quick Check:

        withIndex() = index + value [OK]
      Hint: Remember: withIndex() gives index and value together [OK]
      Common Mistakes:
      • Thinking it sorts or filters the list
      • Assuming it reverses the collection
      • Confusing index with value only
      2. Which of the following is the correct syntax to loop over a list items with index in Kotlin?
      easy
      A. for ((index, value) in items.withIndex()) { /* code */ }
      B. for (index, value in items) { /* code */ }
      C. for (index; value in items.withIndex()) { /* code */ }
      D. for index, value in items.withIndex() { /* code */ }

      Solution

      1. Step 1: Recall Kotlin destructuring syntax in loops

        Kotlin allows destructuring pairs using parentheses in the for loop header, like for ((index, value) in ...).
      2. Step 2: Match syntax with withIndex()

        The correct syntax uses items.withIndex() and destructures the pair into index and value.
      3. Final Answer:

        for ((index, value) in items.withIndex()) { /* code */ } -> Option A
      4. Quick Check:

        Destructure pairs with (index, value) [OK]
      Hint: Use parentheses to destructure pairs in for loop [OK]
      Common Mistakes:
      • Omitting parentheses around (index, value)
      • Using semicolon instead of comma
      • Missing 'in' keyword
      3. What will be the output of this Kotlin code?
      val data = listOf("apple", "banana", "cherry")
      for ((i, v) in data.withIndex()) {
          println("$i: $v")
      }
      medium
      A. 0: apple 1: banana 2: cherry
      B. apple: 0 banana: 1 cherry: 2
      C. 1: apple 2: banana 3: cherry
      D. Error: cannot destructure

      Solution

      1. Step 1: Understand the list and loop

        The list contains three fruits: "apple", "banana", "cherry". The loop uses withIndex() to get index and value.
      2. Step 2: Trace the loop output

        Each iteration prints the index and value separated by colon and space. Indices start at 0.
      3. Final Answer:

        0: apple 1: banana 2: cherry -> Option A
      4. Quick Check:

        Index starts at 0, prints index: value [OK]
      Hint: Index starts at 0 in withIndex() loops [OK]
      Common Mistakes:
      • Assuming index starts at 1
      • Swapping index and value in output
      • Expecting error from destructuring
      4. Identify the error in this Kotlin code snippet:
      val numbers = arrayOf(10, 20, 30)
      for (i, num in numbers.withIndex()) {
          println("$i -> $num")
      }
      medium
      A. Cannot use withIndex() on arrays.
      B. Missing parentheses around (i, num) in the for loop.
      C. The println statement syntax is incorrect.
      D. Variable names i and num are reserved keywords.

      Solution

      1. Step 1: Check for correct destructuring syntax

        In Kotlin, destructuring pairs in a for loop requires parentheses: for ((i, num) in ...).
      2. Step 2: Verify other parts of the code

        Using withIndex() on arrays is valid. The println syntax and variable names are correct.
      3. Final Answer:

        Missing parentheses around (i, num) in the for loop. -> Option B
      4. Quick Check:

        Destructure pairs with parentheses [OK]
      Hint: Always use parentheses to destructure pairs in for loops [OK]
      Common Mistakes:
      • Omitting parentheses in destructuring
      • Thinking withIndex() doesn't work on arrays
      • Misreading println syntax
      5. Given a list of database table names tables = listOf("users", "orders", "products"), how can you create a map of index to table name using a Kotlin for loop with withIndex()?
      hard
      A. val map = mutableMapOf() for (t in tables) { map[t] = t.length }
      B. val map = mutableMapOf() for ((i, t) in tables.withIndex()) { map[t] = i }
      C. val map = mutableMapOf() for (i in tables.withIndex()) { map[i] = tables[i] }
      D. val map = mutableMapOf() for ((i, t) in tables.withIndex()) { map[i] = t }

      Solution

      1. Step 1: Understand the goal

        We want a map where keys are indices (Int) and values are table names (String).
      2. Step 2: Use withIndex() to get index and value

        Loop over tables.withIndex() and assign map[i] = t to build the map correctly.
      3. Final Answer:

        val map = mutableMapOf() for ((i, t) in tables.withIndex()) { map[i] = t } -> Option D
      4. Quick Check:

        Index to value mapping with withIndex() [OK]
      Hint: Use withIndex() and map[i] = value to build index-value map [OK]
      Common Mistakes:
      • Swapping key and value types in map
      • Not destructuring with parentheses
      • Using wrong loop variable types
      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