Menu
CoddyTech

Melanjutkan loop Berlabel

Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 43 dari 63.

continue berlabel melewati sisa iterasi saat ini dari loop yang disebutkan dan memulai iterasi berikutnya. Dari loop bagian dalam, continue@rows dapat menolak seluruh baris saat ini begitu satu sel tidak valid ditemukan.

Di dalam 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)

Sel negatif membuat barisnya ditolak. Baris nonnegatif dan baris kosong mencapai penambahan nilai.

continue berlabel berpindah ke iterasi berikutnya dari perulangan yang disebutkan.

challenge icon

Tantangan

Sedang

Lengkapi nonnegativeRows dengan parameter grid: List<List<Int>>. Hitung baris yang tidak berisi nilai negatif. Baris kosong tetap dihitung. Gunakan continue pada perulangan luar berlabel untuk menolak baris yang memiliki nilai negatif.

Kecuali jika batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen integer serta nilai integer dalam koleksi berada di antara -1000 dan 1000. Teks yang diberikan untuk diuraikan dapat mencakup representasi yang tidak valid atau di luar rentang, seperti yang dijelaskan.

Kembalikan nilai bertipe Int. Pertahankan kode input/output yang disediakan. Kode tersebut membaca argumen skalar, satu per baris; sebuah list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan sebuah map dimulai dengan jumlah entrinya, lalu diikuti setiap kunci dan nilai. List bersarang mengulangi format jumlah-elemen untuk setiap baris. main yang disediakan mencetak nilai kembalian, lalu satu baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan cetak label tambahan.

Coba sendiri

fun nonnegativeRows(grid: List<List<Int>>): Int {
    // Tulis solusimu di sini.
    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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin