En este tutorial verás la sintaxis de la función repeat en Kotlin para explorar otra forma de ejecutar iteraciones una cantidad determinada de veces.
Sintaxis De repeat()
La función repeat()
es una de las tantas funciones que forman parte de la librería estándar de Kotlin para proveernos utilidades. Esta ejecuta n cantidad de veces el bloque de código que pases como argumento.
inline fun repeat(times: Int, action: (Int) -> Unit)
El primer parámetro entero times
, representa la cantidad de veces a realizar las sentencias del parámetro action
. Como ves, action
es un tipo función, cuyo parámetro de entrada es el índice de la iteración y el cuerpo tipo Unit
, representando al bloque de código.
fun main() {
repeat(3){
// Sentencias
}
}
Por ejemplo: Pedir cuatro números al usuario y e imprimir la suma al final. Si la entrada es inválida, entonces interpretarla como cero.
fun main() {
println("Ingresa cuatro números")
var sum = 0
repeat(4) { index ->
print("Número ${index+1}:")
val userInput = readLine()
val number: Int = readInteger(userInput)
sum += number
}
println("La suma de tus números es $sum")
}
fun readInteger(userInput: String?): Int {
if (userInput == null) return 0
return try {
userInput.toInt()
} catch (e: NumberFormatException) {
0
}
}
Salida con valores de ejemplo:
Ingresa cuatro números
Número 1:2
Número 2:3
Número 3:4
Número 4:4
La suma de tus números es 13
Al leer el código te darás cuenta que el cuerpo central de main()
es el uso de repeat()
. El problema nos pedía la lectura de cuatro números, por lo que usamos ese entero como primer parámetro.
Y como bloque de código pasamos una función lambda que imprime un mensaje para solicitar cada número. La plantilla del String es construida con el valor del parámetro index
que se hace explícito.
Luego usamos a readLine()
para obtener la entrada del usuario y la convertimos con la función readInteger()
. Esta retorna cero en caso de que el valor sea null
o el parsing con toInt(
) arroje una excepción.
Finalmente acumulamos las entradas en la variable mutable sum
y al terminar reapeat()
imprimimos su resultado.