Kotlin

Ciclos en Kotlin: while, for y do while

En este post voy a hablar sobre los ciclos o loops en el lenguaje de programación Kotlin.

Kotlin tiene los tres ciclos básicos o esenciales:

  1. for
  2. while
  3. do while

Ciclo for

El ciclo for es más utilizado para recorrer arreglos o rangos. No se puede declarar una variable dentro del ciclo, de hecho su declaración es omitida y se parece más al foreach de Java.

// Ciclo del 0 al 9
// usando un rango
// https://parzibyte.me/blog/2019/07/05/rangos-kotlin/
val rangoDeNumeros = 0..9
for (numero in rangoDeNumeros) {
    println(numero)
}

// Recorrer un arreglo
// Más sobre arreglos: https://parzibyte.me/blog/2019/07/02/arreglos-kotlin/
val nombres = arrayOf("John Galt", "Dagny Taggart", "Hank Rearden")
for (nombre in nombres) {
    println(nombre)
}

Como lo ves, para un ciclo que sería algo así:

for(var i = 0; i < 10; i++)

Se usa un rango con  0..9

Ciclo while

El ciclo while permite repetir determinada cosa mientras una condición se cumpla.

// Ciclo con while y contadores
var contador = 5
while (contador > 0) {
    println("Cuenta regresiva: $contador")
    contador--
}

Con un ciclo while se puede iterar un arreglo igualmente (la longitud del arreglo se obtiene con size):

// Recorrer un arreglo:
var indice = 0
while (indice < nombres.size) {
    println("Un nombre: ${nombres[indice]}")
    indice++
}

Una cosa que no es posible con los rangos es iterar con flotantes, pues bien, con un ciclo while es totalmente posible:

// Ciclo con flotantes
var contadorFlotantes = 0.1
while (contadorFlotantes < 1.0) {
    println("Contando del 0.1 al 1.0: $contadorFlotantes")
    contadorFlotantes += 0.1
}

Do while en Kotlin

Recuerda que la diferencia entre do while y while es que do while se ejecuta al menos una vez, incluso si la condición es falsa:

do {
    println("Me ejecuto una vez")
} while (false)

Con do while se puede hacer lo mismo que con los otros ciclos, tomando en cuenta la diferencia que ya mencioné.

Veamos un ejemplo:

// También existe el do while
var otroContador = 0
do {
    println("Contador: $otroContador")
    otroContador++
} while (otroContador < 5)

Repasando

En resumen, si quieres ir paso a paso en un rango, usa for con rangos. Lo mismo si quieres recorrer un arreglo.

Si quieres un ciclo más común, usa while.

Los ciclos do while casi no son usados, pero eso no significa que sean malos

Vamos a poner todo lo aprendido en el siguiente código:

fun main(argumentos: Array<String>) {
    /**
     * Ciclos en Kotlin:
     * while
     * do while
     * for
     *
     * @author parzibyte
     * @link https://parzibyte.me/blog
     * */
    // Ciclo del 0 al 9
    // usando un rango
    // https://parzibyte.me/blog/2019/07/05/rangos-kotlin/
    val rangoDeNumeros = 0..9
    for (numero in rangoDeNumeros) {
        println(numero)
    }

    // Recorrer un arreglo
    // Más sobre arreglos: https://parzibyte.me/blog/2019/07/02/arreglos-kotlin/
    val nombres = arrayOf("John Galt", "Dagny Taggart", "Hank Rearden")
    for (nombre in nombres) {
        println(nombre)
    }

    // Ciclo con while y contadores
    var contador = 5
    while (contador > 0) {
        println("Cuenta regresiva: $contador")
        contador--
    }

    do {
        println("Me ejecuto una vez")
    } while (false)

    // También existe el do while
    var otroContador = 0
    do {
        println("Contador: $otroContador")
        otroContador++
    } while (otroContador < 5)

    // Recorrer un arreglo:
    var indice = 0
    while (indice < nombres.size) {
        println("Un nombre: ${nombres[indice]}")
        indice++
    }

    // Ciclo con flotantes
    var contadorFlotantes = 0.1
    while (contadorFlotantes < 1.0) {
        println("Contando del 0.1 al 1.0: $contadorFlotantes")
        contadorFlotantes += 0.1
    }

}

Prueba el código en el playground.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

4 semanas hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace

Hacer pruebas en impresora térmica Bluetooth Android

Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…

2 meses hace

Limpiar clave PEM

Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…

2 meses hace

Foco con Telegram, apagador de 3 vías, relevador y ESP8266

Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…

2 meses hace

Esta web usa cookies.