English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Loops while e do...while no Kotlin

Os loops são usados em programação para repetir um bloco específico de código. Neste artigo, você aprenderá a criar loops while e do...while no Kotlin.

Os loops são usados em programação para repetir um bloco específico de código até que uma condição específica seja atendida (expressão de teste for false).

Os loops tornam o computador uma máquina interessante. Imagine que você precisa imprimir uma frase na tela50 vezes. Bem, você pode usar a instrução print50 vezes (sem usar loop) para fazer isso. Você precisa imprimir uma milhão de frases? Você precisa usar um loop.

Você entenderá os dois loops while e do..while com a ajuda de exemplos neste artigo

Se você estiver familiarizado comLoops while e do ... while no JavaSe você já está familiarizado com esses loops no Kotlin,

Loop while no Kotlin

A sintaxe do loop while é:

while (testExpression) {
    // O código dentro do corpo do loop while
}

Como o loop while funciona?

A expressão de teste dentro dos parênteses ébooleanoexpressão.

Se o resultado da avaliação da expressão de teste for true,

  • As instruções dentro do loop while serão executadas.

  • Em seguida, avalie novamente a expressão de teste.

Este processo continua até que a expressão de teste seja avaliada como false.

Se o resultado da avaliação da expressão de teste for false,

  • o loop while termina.

Diagrama de fluxo do loop while

Exemplo: Loop while do Kotlin

//O programa imprime5vez
fun main(args: Array<String>) {
    var i = 1
    while (i <= 5) {
        println("Linha $i")
        ++i
    }
}

Quando você executar o programa, a saída será:

Linha 1
Linha 2
Linha 3
Linha 4
Linha 5

Atenção, dentro do loop while ++i instrução. Dentro de5iteração após a qual a variável i será aumentada6. Em seguida, a expressão de teste i <= 5 é avaliada como false, e o loop termina.

Se o corpo do loop tiver apenas uma instrução, não é necessário usar chaves { }. 

Exemplo: Calculando a soma dos números naturais

//O programa calcula1até10a soma dos números naturais. A
fun main(args: Array<String>) {
    var sum = 0
    var i = 100
    while (i != 0) {
        sum += i     // sum = sum + i;
        --i
    }
    println("sum = $sum")
}

Quando você executar o programa, a saída será:

sum = 5050

Aqui, a variável sum é inicializada como 0, enquanto i é inicializado como 100. Em cada iteração do loop while, a variável sum é atribuída a sum + i, e o valor de i diminui1até que i seja igual a 0.

A1iteração: sum = 0+100 = 100, i = 99
A2iteração: sum = 100+99 = 199, i = 98
A3iteração: sum = 199+98 = 297, i = 97
... .. ...
... .. ...
A99iteração: sum = 5047+2 = 5049, i = 1
A100 iterações: sum = 5049+1 = 5050, i = 0 (fim do loop)

Para obter mais informações sobre a expressão de teste e como ela é avaliada, acesseComparaçãoEOperadores lógicos.

Loop do Kotlin do...while

O loop do ... while é semelhante ao while, com uma diferença crucial: o corpo do loop do ... while é executado uma vez antes de verificar a expressão de teste.

Sua sintaxe é:

do {
   //Código dentro do corpo do loop do ... while
} while (testExpression);

Como funciona o loop do ... while?

O código dentro do corpo do loop do ... while é executado uma vez (sem verificar a testExpression). Em seguida, verifica-se a expressão de teste.

Se a expressão de teste for avaliada como true, o código dentro do corpo do loop é executado e a expressão de teste é avaliada novamente. Este processo continua até que a expressão de teste seja avaliada como false.

O loop do ... while termina quando a expressão de teste é avaliada como false.

Diagrama de fluxo do loop do ... while

Exemplo: Loop do Kotlin do ... while

O programa a seguir calcula a soma dos números digitados pelo usuário até que ele insira 0.

Para aceitar a entrada do usuário, use a função readline().Leia mais: Entrada do Kotlin

fun main(args: Array<String>) {
    var sum: Int = 0
    var input: String
    do {
        print("Insira um inteiro: ")
        input = readLine()!!
        sum += input.toInt()
    } while (input != "0")
    println("sum = $sum")
}

Quando você executar o programa, a saída será como segue:

Insira um inteiro: 4
Insira um inteiro: 3
Insira um inteiro: 2
Insira um inteiro: -6
Insira um inteiro: 0
sum = 3