Menu
CoddyTech
flag Ar iconالعربيةdown icon

جملة 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: 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 عبر الإنترنت