המשך לולאות מתויגות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 43 מתוך 63.
פקודת continue עם תווית מדלגת על שאר האיטרציה הנוכחית של הלולאה בעלת השם ומתחילה את האיטרציה הבאה שלה. מתוך לולאה פנימית, continue@rows יכולה לפסול את השורה הנוכחית כולה ברגע שנמצא תא לא תקין אחד.
בתוך 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)התא השלילי פוסל את השורה שלו. השורה הלא־שלילית והשורה הריקה מגיעות להגדלה.
פקודת continue עם תווית עוברת לאיטרציה הבאה של הלולאה ששמה צוין.
אתגר
בינוניהשלם את nonnegativeRows עם הפרמטרים grid: List<List<Int>>. ספור שורות שאינן מכילות ערכים שליליים. שורה ריקה נחשבת. השתמש ב-continue בלולאה חיצונית מתויגת כדי לדחות שורה שמכילה ערך שלילי.
אלא אם צוין לעיל טווח מחמיר יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים מסוג מספר שלם וערכי האוספים מסוג מספר שלם הם בין -1000 ל-1000. טקסט שמסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזר ערך מסוג Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ולאחריו האיברים, ומפה מתחילה במספר הרשומות שלה ולאחריו כל מפתח וערך. רשימות מקוננות חוזרות על פורמט המספר והאיברים עבור כל שורה. ה-main שסופקה מדפיסה את ערך ההחזרה ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסוגריים המרובעים הסטנדרטי של Kotlin; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun nonnegativeRows(grid: List<List<Int>>): Int {
// כתבו כאן את הפתרון שלכם.
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))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשר9זרימת בקרה מתקדמת
תנאי שמירהיציאה מלולאות מתויגותהמשך לולאות מתויגותפונקציות רקורסיביותסיכום – השורה התקינה הראשונהתרגלו בעצמכם: Kotlin אונליין