Bird
Raised Fist0
Kotlinprogramming~20 mins

For loop over collections in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
For Loop Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a for loop over a list
What is the output of this Kotlin code?
Kotlin
val fruits = listOf("apple", "banana", "cherry")
for (fruit in fruits) {
    print(fruit.first())
}
Aa b c
Bapplebananacherry
Cabc
Dfruitfruitfruit
Attempts:
2 left
💡 Hint
Look at what the print statement outputs for each fruit.
❓ Predict Output
intermediate
2:00remaining
For loop with index over a list
What will be printed by this Kotlin code?
Kotlin
val numbers = listOf(10, 20, 30)
for ((index, value) in numbers.withIndex()) {
    println("$index:$value")
}
A
0:10
1:20
2:30
B
index:value
index:value
index:value
C
10:0
20:1
30:2
D
0-10
1-20
2-30
Attempts:
2 left
💡 Hint
withIndex() gives pairs of index and value.
🔧 Debug
advanced
2:00remaining
Identify the error in this for loop over a map
What error does this Kotlin code produce?
Kotlin
val map = mapOf("a" to 1, "b" to 2)
for (key, value in map) {
    println("$key -> $value")
}
ASyntaxError: Unexpected destructuring declaration
BTypeError: Cannot iterate over map
CNo error, prints 'a -> 1' and 'b -> 2'
DRuntimeException: Invalid loop variable
Attempts:
2 left
💡 Hint
Check how to destructure map entries in Kotlin for loops.
❓ Predict Output
advanced
2:00remaining
Output of nested for loops over collections
What is the output of this Kotlin code?
Kotlin
val list1 = listOf(1, 2)
val list2 = listOf("a", "b")
for (num in list1) {
    for (char in list2) {
        print("$num$char ")
    }
}
A1 2 a b
B1a 1b 2a 2b
Ca1 b1 a2 b2
D12 ab
Attempts:
2 left
💡 Hint
The outer loop runs over numbers, inner over characters.
🧠 Conceptual
expert
2:00remaining
Number of iterations in a for loop over a set
Given this Kotlin code, how many times will the loop run?
Kotlin
val set = setOf("x", "y", "z")
var count = 0
for (item in set) {
    count++
}
println(count)
ACannot determine because sets are unordered
B0
C1
D3
Attempts:
2 left
💡 Hint
Count how many items are in the set.

Practice

(1/5)
1. What does a for loop do when used with a collection in Kotlin?
easy
A. It sorts the collection automatically.
B. It creates a new collection from the existing one.
C. It removes items from the collection one by one.
D. It repeats a block of code for each item in the collection.

Solution

  1. Step 1: Understand the purpose of a for loop

    A for loop runs code repeatedly for each element in a collection like a list or array.
  2. Step 2: Identify what happens in the loop

    Each item is accessed one by one, and the code inside the loop runs for each item.
  3. Final Answer:

    It repeats a block of code for each item in the collection. -> Option D
  4. Quick Check:

    For loop = repeat for each item [OK]
Hint: For loops run code once per item in a collection [OK]
Common Mistakes:
  • Thinking for loop creates or removes items
  • Confusing for loop with sorting or filtering
  • Believing for loop runs only once
2. Which of the following is the correct syntax for a for loop over a list named items in Kotlin?
easy
A. for item in items { println(item) }
B. for (item in items) { println(item) }
C. for item : items { println(item) }
D. for (item : items) println(item)

Solution

  1. Step 1: Recall Kotlin for loop syntax

    Kotlin requires parentheses around the loop variable and collection: for (item in items) { ... }
  2. Step 2: Check each option

    for (item in items) { println(item) } matches the correct syntax with parentheses and braces.
  3. Final Answer:

    for (item in items) { println(item) } -> Option B
  4. Quick Check:

    Parentheses + in keyword = correct syntax [OK]
Hint: Use parentheses and 'in' keyword in Kotlin for loops [OK]
Common Mistakes:
  • Omitting parentheses around loop header
  • Using colon ':' instead of 'in'
  • Missing braces for loop body
3. What is the output of this Kotlin code?
val numbers = listOf(1, 2, 3)
for (num in numbers) {
    print(num * 2)
}
medium
A. 246
B. 123
C. 6
D. Error

Solution

  1. Step 1: Understand the loop and list

    The list contains 1, 2, 3. The loop goes through each number.
  2. Step 2: Calculate output for each iteration

    Each number is multiplied by 2 and printed without spaces: 1*2=2, 2*2=4, 3*2=6, so output is "246".
  3. Final Answer:

    246 -> Option A
  4. Quick Check:

    Print doubles of 1,2,3 = 246 [OK]
Hint: Multiply and print each item in order [OK]
Common Mistakes:
  • Assuming print adds spaces or newlines
  • Confusing multiplication with addition
  • Expecting a list output instead of concatenated string
4. Identify the error in this Kotlin code snippet:
val fruits = listOf("apple", "banana", "cherry")
for fruit in fruits {
    println(fruit)
}
medium
A. Missing parentheses around loop header
B. Using wrong collection type
C. Incorrect print statement
D. No error, code is correct

Solution

  1. Step 1: Check for correct for loop syntax

    Kotlin requires parentheses around the loop header: for (fruit in fruits) { ... }
  2. Step 2: Identify the missing parentheses

    The code misses parentheses around 'fruit in fruits', causing a syntax error.
  3. Final Answer:

    Missing parentheses around loop header -> Option A
  4. Quick Check:

    Parentheses required in Kotlin for loops [OK]
Hint: Always put parentheses around for loop header [OK]
Common Mistakes:
  • Omitting parentheses in for loop
  • Using wrong loop variable syntax
  • Assuming print statement causes error
5. Given a list of names, how would you use a Kotlin for loop to print only names longer than 4 characters? Choose the correct code snippet.
hard
A. for (name in names) { println(name.length) > 4 }
B. for (name in names) println(name.length > 4)
C. for (name in names) { if (name.length > 4) println(name) }
D. for (name in names) { if (name > 4) println(name) }

Solution

  1. Step 1: Understand the condition to filter names

    We want to print names only if their length is greater than 4 characters.
  2. Step 2: Check each option for correct syntax and logic

    for (name in names) { if (name.length > 4) println(name) } correctly uses an if statement inside the loop to check length and print the name.
  3. Final Answer:

    for (name in names) { if (name.length > 4) println(name) } -> Option C
  4. Quick Check:

    Use if inside for to filter by length [OK]
Hint: Use if condition inside for loop to filter items [OK]
Common Mistakes:
  • Comparing string directly to number
  • Printing boolean instead of name
  • Incorrect syntax in if or print statements
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