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.
Ejemplo: Imprimir la cuenta del uno al cinco.
fun main(){
for(i in 1..5){
println("Contando $i")
}
}
Lenguaje del código: Kotlin (kotlin)
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")
Lenguaje del código: Kotlin (kotlin)
A continuación, verás algunos ejemplos de iteraciones sobre colecciones.
Recorrer Un Rango
El siguiente es un ejemplo que recorre el rango (por escribir) 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)
}
Lenguaje del código: Kotlin (kotlin)
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]}]")
}
}
Lenguaje del código: Kotlin (kotlin)
La salida será:
[0, Teemo]
[1, Ahri]
[2, Vayne]
[3, Brand]
[4, Kindred]
Lenguaje del código: JSON / JSON con comentarios (json)
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 (por escribir) 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]")
}
}
Lenguaje del código: Kotlin (kotlin)
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)
}
}
Lenguaje del código: Kotlin (kotlin)
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
.