Bucle for En Kotlin

En este tutorial aprenderás sobre la sintaxis del bucle for en Kotlin para iterar sobre colecciones de elementos. Luego verás ejemplos recorrer estructuras de datos como rangos, arreglos y strings.

Sintaxis Del Bucle for

El bucle for en Kotlin se asemeja a las sentencias foreach de otros lenguajes, donde se provee un iterador (iterator()) para recorrer los elementos de datos estructurados.

La sentencia se compone de una declaración de variables, una expresión contenedora, compuesta por el operador in y los datos estructurados (arreglos, listas, etc.), y el cuerpo del bucle.

Sintaxis de for en Kotlin

Ejemplo: Imprimir la cuenta del uno al cinco.

fun main(){
    for(i in 1..5){
        println("Contando $i")
    }
}

Como ves, la variable declarada es i y la estructura de datos es un rango del 1 al 5. Lo que significa que el cuerpo se ejecutará cinco veces.

El valor de i es accesible desde el cuerpo, por lo que puedes imprimir su contenido con println():

Contando 1
Contando 2
Contando 3
Contando 4
Contando 5

Aunque usamos el cuerpo como un bloque de código, al ser una sola sentencia, puedes omitir las llaves.

for (i in 1..5) println("Contando $i")

A continuación, verás algunos ejemplos de iteraciones sobre colecciones.

Recorrer Un Rango

El siguiente es un ejemplo que recorre el rango de caracteres [‘a’,’f’]. Verás varios bucles for usando progresiones (por escribir) con el fin de manipular el ritmo y orden de las iteraciones.

fun main() {
    // iteración regular
    for (char in 'a'..'f') print(char)

    // iteración con avance de 2
    println()
    for (char in 'a'..'f' step 2) print(char)

    println()
    // iteración en reversa
    for (char in 'f' downTo 'a') print(char)

    // iteración excluyendo el límite superior
    println()
    for (char in 'a' until 'f') print(char)
}

La salida del programa será:

abcdef
ace
fedcba
abcde

Recorrer Un Array

Para iterar a lo largo de un arreglo con el bucle for, debemos usar como base los índices de sus elementos.

Esto significa, que usamos en la declaración de variable el índice y luego expresamos su existencia sobre la propiedad rango entero indices.

Ejemplo: Crear un arreglo con cinco nombres de campeones e imprimir su índice y valor.

fun main() {
    val champions = arrayOf("Teemo", "Ahri", "Vayne", "Brand", "Kindred")

    for (i in champions.indices) {
        println("[$i, ${champions[i]}]")
    }
}

La salida será:

[0, Teemo]
[1, Ahri]
[2, Vayne]
[3, Brand]
[4, Kindred]

Adicionalmente, Kotlin te permite reescribir la sentencia for anterior con el método withIndex(), el cual retorna en elementos IndexedValue, que contienen el índice y el valor.

Dichos valores pueden ser recibidos en un declaración de desestructuración de la forma (indice, valor). La cual es accesible desde el cuerpo del bucle.

fun main() {
    val champions = arrayOf("Teemo", "Ahri", "Vayne", "Brand", "Kindred")

    // Desestructuración de elementos de Array
    for ((i, v) in champions.withIndex()) {
        println("[$i, $v]")
    }
}

Recorrer Un String

También es posible iterar sobre un string con el bucle for. La sentencia interpretará la posición y valor de cada carácter.

Ejemplo: Imprimir el string "Develou" en forma vertical.

fun main(){
    for(c in "Develou"){
        println(c)
    }
}

En la salida de la aplicación tendrás:

D
e
v
e
l
o
u

¿Qué Sigue?

Como ya sabes usar el bucle for en Kotlin, ahora puedes avanzar a ver ejemplos de uso para el bucle while.

Únete Al Discord De Develou

Si tienes problemas con el código de este tutorial, preguntas, recomendaciones o solo deseas discutir sobre desarrollo Android conmigo y otros desarrolladores, únete a la comunidad de Discord de Develou y siéntete libre de participar como gustes. ¡Te espero!