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