Menu
Coddy logo textTech

Clausole di guardia

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 41 di 63.

Una clausola di guardia termina prima la funzione quando l’input non può seguire il percorso principale. Verificare prima i casi eccezionali può ridurre le condizioni annidate. Un’istruzione return termina la funzione corrente, quindi le istruzioni successive in quella funzione non vengono eseguite.

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

All'interno di main:

println(deliveryFee(-1))

L'input negativo attiva il controllo e impedisce il normale calcolo della tariffa.

Una clausola di guardia esce dalla funzione prima del percorso normale quando la sua condizione è vera.

challenge icon

Sfida

Medio

Completa firstOrMissing con il parametro values: List<Int>. Restituisci -1 per una lista vuota usando una clausola di guardia. Altrimenti, restituisci il primo valore.

A meno che non siano indicati limiti più restrittivi sopra, le collezioni contengono al massimo 100 elementi a ciascun livello e gli argomenti interi e i valori interi delle collezioni sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio, seguito dai suoi elementi, e una mappa inizia con il conteggio delle sue voci, seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un newline. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.

Provalo tu

fun firstOrMissing(values: List<Int>): Int {
    // Scrivi qui la tua soluzione.
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin