while and do-while: When to Use Each
Write while and do-while loops and understand their use cases.
while and do-while: When to Use Each is a free Kotlin Academy lesson on CoddyKit. This is lesson 2 of 4. Any 3 lessons of this learning path are free to read in full — after that, CoddyKit PRO unlocks every lesson, plus hands-on practice with a built-in code editor and a 24/7 AI tutor. It is part of the Kotlin Academy learning path, and your progress syncs across the web and the CoddyKit app. The Kotlin Academy course includes 4 lessons in total.
Two Kinds of While Loops
Kotlin offers both while (pre-test) and do-while (post-test). The difference: do-while always runs the body at least once.
Basic while Loop
A while checks the condition before each iteration. If false initially, the body never runs.
fun main() {
var count = 0
while (count < 3) {
println("count = $count")
count++
}
}Basic do-while Loop
A do-while runs the body, then checks the condition. The body always runs at least once.
fun main() {
var n = 10
do {
println("n = $n")
n--
} while (n > 7)
}Reading Until Sentinel
while loops are ideal when you do not know how many iterations you need — e.g. reading until a sentinel value.
fun main() {
val data = listOf(3, 7, 0, 9)
var i = 0
while (i < data.size && data[i] != 0) {
println("got ${data[i]}")
i++
}
println("stopped at index $i")
}Searching a List
Use while for early-exit search where you stop as soon as a condition is met.
fun main() {
val nums = listOf(2, 4, 7, 8, 10)
var i = 0
while (i < nums.size && nums[i] % 2 == 0) i++
println("first odd at index $i = ${nums[i]}") // 2 = 7
}do-while for Input Validation
Use do-while when you must perform an action (prompt, read, attempt) before you can test for success.
fun main() {
val validInputs = listOf("y", "n", "y")
var idx = 0
var input: String
do {
input = validInputs[idx++]
println("user typed: $input")
} while (input != "n" && idx < validInputs.size)
}Counter with Decrement
while loops cleanly handle counters that decrement to zero.
fun main() {
var lives = 3
while (lives > 0) {
println("Lives left: $lives")
lives--
}
println("Game over")
}Infinite Loop with Break
Use while (true) with break for event-loop style code where the exit condition is complex.
fun main() {
val items = listOf(1, 2, 3, -1, 4)
var i = 0
while (true) {
if (i >= items.size || items[i] < 0) break
println("ok: ${items[i]}")
i++
}
}Comparing while and for
If you know the iteration count up front, prefer for. Use while when iterations depend on runtime state.
fun main() {
// for: known bounds
for (i in 1..3) print("$i ")
println()
// while: state-driven
var n = 1
while (n <= 3) { print("$n "); n++ }
println()
}Loop with Two Variables
while loops can track multiple variables, helpful for algorithms like Fibonacci.
fun main() {
var a = 0
var b = 1
while (b < 50) {
print("$b ")
val next = a + b
a = b
b = next
}
println() // 1 1 2 3 5 8 13 21 34
}do-while Always Runs Once
Even if the condition is false from the start, the body of do-while executes once. Sometimes this is exactly what you want — other times it is a bug.
fun main() {
var x = 100
do {
println("x = $x") // prints once
x--
} while (x > 1000) // false immediately
}Quick Check
Which loop guarantees its body runs at least once regardless of the condition?
Recap
Use while when the iteration count depends on a runtime condition. Use do-while when the body must execute at least once (e.g. validation, retry). Prefer for if iteration count is known.
Learn Kotlin with an AI tutor — free
Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.
- Courses
- 51
- Lessons
- 203
Frequently Asked Questions
Is the “while and do-while: When to Use Each” lesson free?
Yes — any 3 lessons of the Kotlin Academy learning path, including “while and do-while: When to Use Each”, are free to read in full here on the web. After that, CoddyKit PRO unlocks every lesson, plus interactive practice with a built-in code editor and a 24/7 AI tutor. The Kotlin Academy course includes 4 lessons in total.
What will I learn in “while and do-while: When to Use Each”?
Write while and do-while loops and understand their use cases. You practise Kotlin Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Kotlin Academy?
No prior experience is required. Kotlin Academy on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 2 of 4.
How long does the “while and do-while: When to Use Each” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Kotlin Academy lesson?
Yes. Every Kotlin Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- for Loop Over Ranges and Collections
- while and do-while: When to Use Each
- forEach, repeat, and forEachIndexed
- break, continue, and Labeled Returns