Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

جملة Switch مع `fallthrough`

جزء من قسم المنطق وتدفق التنفيذ في رحلة GO على Coddy. الدرس 1 من 68.

في Go، تنفّذ عبارات switch عادةً case المطابقة فقط، ثم تخرج تلقائيًا. ومع ذلك، تغيّر الكلمة المفتاحية fallthrough هذا السلوك، إذ تفرض استمرار التنفيذ إلى case التالية، بغضّ النظر عمّا إذا كانت مطابقة أم لا.

عند استخدام 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 لإنشاء نظام تنبيهات ذي أولوية. عند تشغيل تنبيه ذي أولوية عالية، يجب أن يعرض النظام رسائل تحذير متعددة بالتتابع.

ستتلقى إدخالًا من النوع string يمثّل مستوى تنبيه. أنشئ عبارة switch تتعامل مع مستويات التنبيه المختلفة وتستخدم fallthrough لعرض رسائل متتابعة للتنبيهات ذات الأولوية الأعلى.

سيكون الإدخال أحد مستويات التنبيه التالية: "critical" أو "high" أو "medium" أو "low".

يجب أن تعمل عبارة switch كما يلي:

  • بالنسبة إلى "critical": اطبع "CRITICAL: System shutdown imminent!" ثم انتقل باستخدام fallthrough لطباعة رسالة الأولوية العالية أيضًا
  • بالنسبة إلى "high": اطبع "HIGH: Immediate attention required!" ثم انتقل باستخدام fallthrough لطباعة رسالة الأولوية المتوسطة أيضًا
  • بالنسبة إلى "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 عبر الإنترنت