Menu
Coddy logo textTech

Etiketli Döngülerden Çıkma

Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 42 / 63.

Normal bir break yalnızca en yakın döngüden çıkar. Dış döngüye search@ gibi bir etiket verin; ardından hedefe ulaşıldığında tüm aramadan çıkmak için iç içe döngünün içinde break@search kullanın. Bir etiket, kendisini hemen takip eden döngüye aittir.

main içinde:

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)

Dört, satır sırasındaki ilk çift değerdir ve etiketli break kalan satırları atlar.

Etiketli bir break, iç içe geçmiş çalışması da dâhil olmak üzere özellikle etiketlenmiş döngüden çıkar.

challenge icon

Görev

Orta

firstEven işlevini grid: List<List<Int>> parametresiyle tamamlayın. Satır sırasını kullanarak ilk çift değeri bulun ve her iki döngüyü durdurmak için etiketli bir break kullanın. Eşleşme yoksa -1 döndürün. Sıfır ve negatif çift değerler de sayılır.

Yukarıda daha katı sınırlar belirtilmediği sürece, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı üzere geçersiz veya aralık dışı gösterimler içerebilir.

Int türünde bir değer döndürün. Sağlanan giriş/çıkış kodunu koruyun. Bu kod, skaler bağımsız değişkenleri satır başına bir tane olacak şekilde okur; bir liste, ardından öğeleri gelen sayısıyla başlar ve bir map, ardından her anahtar ve değer gelen giriş sayısıyla başlar. İç içe listeler, her satır için sayı ve öğeler biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından bir satır sonunu yazdırır. Listeler Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun firstEven(grid: List<List<Int>>): Int {
    // Çözümünüzü buraya yazın.
    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground