📖 Scenario: You are organizing a countdown event and want to display numbers counting down with a specific step.
🎯 Goal: Build a Kotlin program that counts down from 10 to 1, stepping by 2, and prints each number.
📋 What You'll Learn
Create a variable called start with the value 10
Create a variable called end with the value 1
Use a for loop with downTo and step to count down from start to end by 2
Print each number inside the loop
💡 Why This Matters
🌍 Real World
Counting down with steps is useful in timers, animations, and game loops where you want to skip certain numbers.
💼 Career
Understanding loops with steps and counting down is important for writing efficient code in many programming jobs, including app development and automation.
Progress0 / 4 steps
1
Create start and end variables
Create a variable called start and set it to 10. Create another variable called end and set it to 1.
Kotlin
Hint
Use val to create variables and assign the numbers 10 and 1.
2
Write a for loop with downTo and step
Write a for loop using i as the loop variable that counts down from start to end using downTo and steps by 2 using step.
Kotlin
Hint
Use for (i in start downTo end step 2) to count down by 2.
3
Print each number inside the loop
Inside the for loop, write println(i) to print each number.
Kotlin
Hint
Use println(i) inside the loop to show each number.
4
Run the program to see the countdown
Run the program to print the countdown numbers from 10 to 1 stepping by 2.
Kotlin
Hint
The program should print numbers 10, 8, 6, 4, and 2 each on a new line.
Practice
(1/5)
1. What does the downTo keyword do in a Kotlin for loop?
easy
A. It makes the loop count forwards from a lower number to a higher number.
B. It makes the loop count backwards from a higher number to a lower number.
C. It skips numbers in the loop by a fixed step.
D. It stops the loop immediately.
Solution
Step 1: Understand the purpose of downTo
The downTo keyword in Kotlin is used to create a range that counts backwards, from a higher number down to a lower number.
Step 2: Compare with other options
It makes the loop count forwards from a lower number to a higher number. describes counting forwards, It skips numbers in the loop by a fixed step. skipping numbers by step, and It stops the loop immediately. stopping the loop immediately, none of which downTo does.
Final Answer:
It makes the loop count backwards from a higher number to a lower number. -> Option B
Quick Check:
downTo = count backwards [OK]
Hint: Remember: downTo means counting downwards [OK]
Common Mistakes:
Confusing downTo with counting forwards
Thinking downTo skips numbers
Assuming downTo stops the loop
2. Which of the following is the correct syntax to loop from 10 down to 1, stepping by 2 in Kotlin?
easy
A. for (i in 10..1 step 2) { println(i) }
B. for (i in 1 downTo 10 step 2) { println(i) }
C. for (i in 10 downTo 1 step 2) { println(i) }
D. for (i in 10 downTo 1 by 2) { println(i) }
Solution
Step 1: Identify correct downTo and step syntax
The correct syntax to count down with steps is for (i in start downTo end step stepValue). for (i in 10 downTo 1 step 2) { println(i) } matches this.
Step 2: Check other options for errors
for (i in 1 downTo 10 step 2) { println(i) } has start < end, resulting in empty range. for (i in 10..1 step 2) { println(i) } uses .. which doesn't support down with step correctly. for (i in 10 downTo 1 by 2) { println(i) } uses by instead of step, which is incorrect.
Final Answer:
for (i in 10 downTo 1 step 2) { println(i) } -> Option C
Quick Check:
Correct syntax = for (i in 10 downTo 1 step 2) { println(i) } [OK]
Hint: Use downTo with step, not by [OK]
Common Mistakes:
Using by instead of step
Counting down with .. range
Reversing start and end values
3. What is the output of the following Kotlin code?
for (i in 8 downTo 2 step 3) {
print("$i ")
}
medium
A. 8 5 2
B. 8 6 4 2
C. 8 5 3
D. 8 5 2 1
Solution
Step 1: Determine the loop values
The loop starts at 8, counts down to 2, stepping by 3. So values are 8, then 8-3=5, then 5-3=2.
Step 2: Confirm the loop stops at 2
Since 2 is the end value and included, the loop prints 8, 5, and 2.
Final Answer:
8 5 2 -> Option A
Quick Check:
8, 5, 2 with step 3 downTo 2 = 8 5 2 [OK]
Hint: Subtract step each time, stop at end value [OK]
Common Mistakes:
Including numbers less than end value
Using wrong step size
Confusing downTo with ..
4. Identify the error in this Kotlin loop:
for (i in 5 downTo 1 step 0) {
println(i)
}
medium
A. The downTo keyword is misspelled.
B. There is no error; the code runs fine.
C. The loop should use .. instead of downTo.
D. Step value cannot be zero; it causes a runtime error.
Solution
Step 1: Analyze the step value
The step value is 0, which is invalid and causes a runtime error (IllegalArgumentException).
Step 2: Check other options
downTo is spelled correctly, and using .. would count upwards, not downwards. So options A, C, and D are incorrect.
Final Answer:
Step value cannot be zero; it causes a runtime error. -> Option D
Quick Check:
Step must be positive and non-zero [OK]
Hint: Step cannot be zero; it must be positive [OK]
Common Mistakes:
Using zero or negative step incorrectly
Confusing downTo with ..
Ignoring infinite loop risk
5. You want to print all odd numbers from 15 down to 1 using a Kotlin for loop with downTo and step, without using an if statement. Which code snippet correctly does this?
hard
A. for (i in 15 downTo 1 step 2) { println(i) }
B. for (i in 15 downTo 1 step 1) { if (i % 2 == 1) println(i) }
C. for (i in 15 downTo 1 step 3) { println(i) }
D. for (i in 14 downTo 1 step 2) { println(i) }
Solution
Step 1: Understand the goal
We want to print odd numbers from 15 down to 1. Starting at 15 (which is odd) and stepping by 2 will print all odd numbers downwards.
Step 2: Evaluate options
for (i in 15 downTo 1 step 2) { println(i) } starts at 15 and steps by 2 down to 1, printing 15, 13, 11, ..., 1. for (i in 15 downTo 1 step 1) { if (i % 2 == 1) println(i) } uses step 1 with an if filter (disallowed). for (i in 15 downTo 1 step 3) { println(i) } steps by 3, skipping some odds. for (i in 14 downTo 1 step 2) { println(i) } starts at 14 (even), printing evens.
Final Answer:
for (i in 15 downTo 1 step 2) { println(i) } -> Option A
Quick Check:
Start odd, step 2 downTo 1 = odd numbers [OK]
Hint: Start at odd number, step 2 downTo 1 for odd numbers [OK]
Common Mistakes:
Starting at even number when printing odds
Using wrong step size
Filtering inside loop instead of stepping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.