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 لمنع الانتقال التلقائي للحالة التالية.

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!" واستخدم fall through لطباعة رسالة الأولوية العالية أيضاً
  • بالنسبة لـ "high": اطبع "HIGH: Immediate attention required!" واستخدم fall through لطباعة رسالة الأولوية المتوسطة أيضاً
  • بالنسبة لـ "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اختبر نفسك

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

جميع دروس Logic & Flow