Menu
Coddy logo textTech

Continuare cicli etichettati

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

Un continue etichettato salta il resto dell’iterazione corrente del ciclo indicato e avvia quella successiva. Da un ciclo interno, continue@rows può scartare l’intera riga corrente non appena viene trovata una cella non valida.

Dentro main:

var accepted = 0
rows@ for (row in listOf(listOf(1, 2), listOf(3, -1), emptyList())) {
    for (value in row) {
        if (value < 0) continue@rows
    }
    accepted++
}
println(accepted)

La cella negativa fa scartare la riga. La riga non negativa e la riga vuota raggiungono l'incremento.

Un continue con etichetta passa all'iterazione successiva del ciclo specificato.

challenge icon

Sfida

Medio

Completa nonnegativeRows con il parametro grid: List<List<Int>>. Conta le righe che non contengono valori negativi. Una riga vuota viene conteggiata. Usa continue in un ciclo esterno etichettato per scartare una riga che contiene un valore negativo.

A meno che sopra non siano indicati limiti più rigorosi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte 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 ogni chiave e valore. Le liste annidate ripetono il formato conteggio-e-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da una nuova riga. Le liste usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun nonnegativeRows(grid: List<List<Int>>): Int {
    // Write your solution here.
    return 0
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    println(nonnegativeRows(grid))
}
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