0Pricing
Kotlin Academy · Aula

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

  1. Laço for sobre intervalos e coleções
  2. while e do-while: quando usar cada um
  3. forEach, repeat e forEachIndexed
  4. break, continue e retornos rotulados
← Voltar para Kotlin Academy