Menu
Coddy logo textTech

Etiketli Döngülere Devam Etme

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

Etiketli continue, adlandırılmış döngünün geçerli yinelemesinin geri kalanını atlar ve bir sonraki yinelemesini başlatır. İç içe bir döngüden continue@rows, geçersiz bir hücre bulunduğu anda geçerli satırın tamamını reddedebilir.

main içinde:

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)

Negatif hücre, satırı reddeder. Negatif olmayan satır ve boş satır artırma işlemine ulaşır.

Etiketli bir continue, adlandırılmış döngünün bir sonraki yinelemesine geçer.

challenge icon

Görev

Orta

nonnegativeRows işlevini grid: List<List<Int>> parametreleriyle tamamlayın. Negatif değer içermeyen satırları sayın. Boş bir satır sayılır. Negatif değer içeren bir satırı reddetmek için etiketli bir dış döngüde continue kullanın.

Yukarıda daha katı sınırlar belirtilmedikçe, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı argümanları ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı temsiller içerebilir.

Int türünde bir değer döndürün. Sağlanan girdi/çıktı kodunu koruyun. Skaler argümanları satır başına bir tane okur; bir liste, öğe sayısıyla başlar ve ardından öğeleri gelir, bir map ise girdi sayısıyla başlar ve ardından her anahtar ve değer gelir. İç içe listeler, her satır için sayı-ve-öğeler biçimini tekrarlar. Sağlanan main, dönüş değerini bir satır sonuyla birlikte yazdırır. Listeler Kotlin'in standart köşeli parantez biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

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