Menu
Coddy logo textTech

Cláusulas de guarda

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 41 de 63.

Una cláusula de guarda retorna antes cuando la entrada no puede seguir el flujo principal. Comprobar primero los casos excepcionales puede reducir las condiciones anidadas. Un return sale de la función actual, por lo que las instrucciones posteriores de esa función no se ejecutan.

fun deliveryFee(items: Int): Int {
    if (items < 0) return -1
    return items * 2
}

Dentro de main:

println(deliveryFee(-1))

La entrada negativa activa la protección y evita el cálculo normal de la tarifa.

Una cláusula de guarda sale de la función antes de la ruta normal cuando se cumple su condición.

challenge icon

Desafío

Intermedio

Completa firstOrMissing con el parámetro values: List<Int>. Devuelve -1 para una lista vacía mediante una cláusula de guarda. De lo contrario, devuelve el primer valor.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo Int. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas utilizan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun firstOrMissing(values: List<Int>): Int {
    // Escribe tu solución aquí.
    return 0
}
fun main() {
    val valuesCount = readln().toInt()
    val values = mutableListOf<Int>()
    for (i0 in 0 until valuesCount) {
        val valuesItem = readln().toInt()
        values.add(valuesItem)
    }
    println(firstOrMissing(values))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin