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

جملة Switch مع `fallthrough`

جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 1 من 68.

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

عندما تستخدم fallthrough في نهاية حالة (case)، ستقوم لغة Go بتنفيذ كود الحالة التالية دون التحقق من شرطها. هذا يختلف عن لغات مثل C حيث تحتاج إلى break لمنع الانتقال التلقائي (falling through).

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. يتيح لك ذلك تنفيذ إجراءات متعددة ذات صلة لحالة مطابقة واحدة.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

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

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

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

يجب أن تعمل عبارة switch الخاصة بك على النحو التالي:

  • بالنسبة لـ "critical": اطبع "CRITICAL: System shutdown imminent!" واستخدم fall through لطباعة رسالة الأولوية العالية أيضاً
  • بالنسبة لـ "high": اطبع "HIGH: Immediate attention required!" واستخدم fall through لطباعة رسالة الأولوية المتوسطة أيضاً
  • بالنسبة لـ "medium": اطبع "MEDIUM: Please review when possible"
  • بالنسبة لـ "low": اطبع "LOW: Informational only"

استخدم الكلمة المفتاحية fallthrough بحيث تعرض التنبيهات الحرجة كلاً من رسائل الأولوية الحرجة والعالية، وتعرض التنبيهات العالية كلاً من رسائل الأولوية العالية والمتوسطة.

ورقة مرجعية

تُجبر الكلمة المفتاحية fallthrough في جمل switch في لغة Go التنفيذ على الاستمرار إلى الحالة (case) التالية دون التحقق من شرطها:

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. وعلى عكس لغات مثل C، تخرج جمل switch في Go تلقائيًا بعد مطابقة الحالة ما لم يتم استخدام fallthrough.

جرّب بنفسك

package main

import "fmt"

func main() {
    // قراءة المدخلات
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: اكتب الكود الخاص بك أدناه
    // أنشئ جملة switch مع خاصية fallthrough لنظام التنبيه
    
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow