Menu
Coddy logo textTech

switch עם `fallthrough`

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

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

כשמשתמשים ב־fallthrough בסוף של case, Go תבצע את הקוד של ה־case הבא בלי לבדוק את התנאי שלו. זה שונה משפות כמו 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": הדפיסו "HIGH: Immediate attention required!" והמשיכו לביצוע המקרה הבא כדי להדפיס גם את הודעת העדיפות הבינונית
  • עבור "medium": הדפיסו "MEDIUM: Please review when possible"
  • עבור "low": הדפיסו "LOW: Informational only"

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

נסו בעצמכם

package main

import "fmt"

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

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

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

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