Menu
CoddyTech

switch עם `fallthrough`

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 1 מתוך 68.

ב-Go, משפטי switch מבצעים בדרך כלל רק את המקרה המתאים ואז יוצאים אוטומטית. עם זאת, מילת המפתח fallthrough משנה את ההתנהגות הזאת בכך שהיא מאלצת את הביצוע להמשיך למקרה הבא, בלי קשר לשאלה אם הוא מתאים.

כשמשתמשים ב־fallthrough בסוף מקרה, Go תבצע את הקוד של המקרה הבא בלי לבדוק את התנאי שלו. זה שונה משפות כמו C, שבהן צריך להשתמש ב־break כדי למנוע מעבר למקרה הבא.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

בדוגמה הזו, אם grade הוא "B", יודפסו גם "Good job!" וגם "Keep trying!" בגלל פקודת fallthrough. כך אפשר לבצע כמה פעולות קשורות עבור מקרה תואם יחיד.

challenge icon

אתגר

קל

באתגר הזה תתרגלו שימוש במילת המפתח fallthrough בתוך פקודת switch כדי ליצור מערכת התראות לפי סדרי עדיפויות. כאשר מופעלת התראה בעדיפות גבוהה, המערכת צריכה להציג כמה הודעות אזהרה ברצף.

תקבלו קלט מסוג מחרוזת שמייצג רמת התראה. צרו פקודת switch שמטפלת ברמות התראה שונות ומשתמשת ב-fallthrough כדי להציג הודעות מצטברות עבור התראות בעדיפות גבוהה יותר.

הקלט יהיה אחת מרמות ההתראה הבאות: "critical", "high", "medium" או "low".

פקודת ה-switch שלכם צריכה לפעול כך:

  • עבור "critical": הדפיסו "CRITICAL: System shutdown imminent!" והמשיכו למקרה של high (שממשיך בתורו ל-medium)
  • עבור "high": הדפיסו "HIGH: Immediate attention required!" והמשיכו להדפיס גם את הודעת העדיפות medium
  • עבור "medium": הדפיסו "MEDIUM: Please review when possible"
  • עבור "low": הדפיסו "LOW: Informational only"

מכיוון ש-fallthrough יוצר שרשרת, התראה מסוג "critical" מדפיסה שלוש שורות (CRITICAL, HIGH, MEDIUM), התראה מסוג "high" מדפיסה שתיים (HIGH, MEDIUM), ורמות "medium" ו-"low" מדפיסות שורה אחת כל אחת.

נסו בעצמכם

package main

import "fmt"

func main() {
    // קראו את הקלט
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: כתבו את הקוד שלכם למטה
    // צרו משפט switch עם fallthrough עבור מערכת ההתראות
    
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Go אונליין