while e do-while: quando usar cada um
Escreva laços while e do-while e entenda em quais situações usá-los.
while e do-while: quando usar cada um é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
Dois tipos de laço while
O Kotlin oferece tanto while (teste inicial) quanto do-while (teste final). A diferença: do-while sempre executa o corpo pelo menos uma vez.
Laço while básico
Um while verifica a condição antes de cada iteração. Se ela for falsa inicialmente, o corpo nunca será executado.
fun main() {
var count = 0
while (count < 3) {
println("count = $count")
count++
}
}Laço do-while básico
Um do-while executa o corpo e depois verifica a condição. O corpo sempre é executado pelo menos uma vez.
fun main() {
var n = 10
do {
println("n = $n")
n--
} while (n > 7)
}Lendo até um sentinela
Os laços while são ideais quando você não sabe de quantas iterações precisa — por exemplo, ao ler até encontrar um valor sentinela.
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")
}Pesquisando uma lista
Use while para pesquisas com saída antecipada, interrompendo assim que uma condição for atendida.
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 para validação de entrada
Use do-while quando for necessário realizar uma ação — solicitar, ler ou tentar algo — antes de testar se houve sucesso.
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)
}Contador com decremento
Os laços while lidam perfeitamente com contadores que diminuem até zero.
fun main() {
var lives = 3
while (lives > 0) {
println("Lives left: $lives")
lives--
}
println("Game over")
}Laço infinito com break
Use while (true) com break para códigos no estilo de um laço de eventos, nos quais a condição de saída é complexa.
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++
}
}Comparando while e for
Se você souber antecipadamente o número de iterações, prefira for. Use while quando as iterações dependerem do estado durante a execução.
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()
}Laço com duas variáveis
Os laços while podem acompanhar várias variáveis, o que é útil em algoritmos como o de 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 sempre executa uma vez
Mesmo que a condição seja falsa desde o início, o corpo de do-while é executado uma vez. Às vezes é exatamente isso que você deseja — em outras, é um erro.
fun main() {
var x = 100
do {
println("x = $x") // prints once
x--
} while (x > 1000) // false immediately
}Verificação rápida
Qual laço garante que seu corpo será executado pelo menos uma vez, independentemente da condição?
Recapitulação
Use while quando o número de iterações depender de uma condição durante a execução. Use do-while quando o corpo precisar ser executado pelo menos uma vez, por exemplo, em validações ou novas tentativas. Prefira for quando o número de iterações for conhecido.
Perguntas Frequentes
A aula “while e do-while: quando usar cada um” é grátis?
Sim — o texto completo de “while e do-while: quando usar cada um” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “while e do-while: quando usar cada um”?
Escreva laços while e do-while e entenda em quais situações usá-los. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “while e do-while: quando usar cada um”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Laço for sobre intervalos e coleções
- while e do-while: quando usar cada um
- forEach, repeat e forEachIndexed
- break, continue e retornos rotulados