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.
Görev
OrtanonnegativeRows 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))
}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
1Map'ler Bölüm 1
Map'ler OluşturmaGüvenli Map AramalarıMap'leri GüncellemeAnahtarları Kontrol EtmeTekrar - Stok Masası4İç İçe Koleksiyonlar
Liste ListeleriSatırlarda GezinmeSatır Özetleriİç İçe Listeleri DüzleştirmeTekrar - Oturma Sıraları7Koleksiyon İşlem Hatları
Map ile DönüştürmeDeğerleri FiltrelemeKoleksiyon Kurallarını Test EtmeFold ile BiriktirmeTekrar - Onaylanan Toplamlar2Map'ler Bölüm 2
Map Girdileri Üzerinde YinelemeAnahtarlar ve DeğerlerFrekans Map'leriİç İçe Map'lerTekrar - Frekans Raporu5Proje - Kişi Defteri
Kişileri KaydetmeKişileri Bulma3Kümeler ve Üyelik
Kümeler OluşturmaKümeleri GüncellemeKüme İşlemleriAlt Küme KontrolleriÖzet - Etkinlik Konukları6Fonksiyon Değerleri
Lambda YazmaFonksiyon TürleriFonksiyonları GeçirmeYakalanan DeğişkenlerÖzet - Yapılandırılabilir Puan9İleri Düzey Kontrol Akışı
Koruma KoşullarıEtiketli Döngülerden ÇıkmaEtiketli Döngülere Devam EtmeÖzyinelemeli FonksiyonlarTekrar - İlk Geçerli SatırKendi başına pratik yap: Kotlin playground