Menu
CoddyTech

Keluar dari loop Berlabel

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

break biasa hanya keluar dari perulangan terdekat. Beri label pada perulangan luar, seperti search@, lalu gunakan break@search di dalam perulangan bersarang untuk keluar dari seluruh pencarian saat tujuannya tercapai. Label berlaku untuk perulangan yang langsung mengikutinya.

Di dalam main:

var found = -1
search@ for (row in listOf(listOf(1, 4), listOf(6, 8))) {
    for (value in row) {
        if (value % 2 == 0) {
            found = value
            break@search
        }
    }
}
println(found)

Empat adalah nilai genap pertama berdasarkan urutan baris, dan break berlabel melewati baris-baris yang tersisa.

break berlabel keluar dari perulangan dengan label tertentu, termasuk semua pekerjaan bersarang di dalamnya.

challenge icon

Tantangan

Sedang

Lengkapi firstEven dengan parameter grid: List<List<Int>>. Temukan nilai genap pertama sesuai urutan baris, dengan menggunakan break berlabel untuk menghentikan kedua perulangan. Kembalikan -1 jika tidak ada yang cocok. Nol dan nilai genap negatif tetap dihitung.

Kecuali batas yang lebih ketat disebutkan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen integer serta nilai koleksi integer berada di antara -1000 dan 1000. Teks yang diberikan untuk parsing 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; list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan map dimulai dengan jumlah entrinya, lalu diikuti setiap key dan value. List bersarang mengulangi format jumlah-elemen untuk setiap baris. main yang disediakan mencetak nilai kembalian, lalu satu newline. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan cetak label tambahan.

Coba sendiri

fun firstEven(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(firstEven(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