جمل الشروط هي أحد الأركان الأساسية في أي لغة برمجة، فهي تتيح للبرنامج اتخاذ قرارات بناءً على معطيات معينة. توفر Go جملتي if/else و switch بصيغة بسيطة وفعالة للتحكم في تدفق البرنامج.

جملة if الأساسية

تتألف جملة if في Go من الكلمة المفتاحية if متبوعة بشرط، ثم كتلة كود توضع بين أقواس معقوفة. لاحظ أن الشرط لا يحتاج إلى أقواس دائرية حوله، لكن الأقواس المعقوفة إلزامية.

age := 20
if age >= 18 {
    fmt.Println("شخص بالغ")
}

جملة if/else

تستخدم لتنفيذ كتلة بديلة عند عدم تحقق الشرط الأول. يمكن أيضًا تسلسل عدة شروط باستخدام else if للتحقق من شروط متعددة.

score := 75
if score >= 90 {
    fmt.Println("ممتاز")
} else if score >= 75 {
    fmt.Println("جيد جدًا")
} else if score >= 60 {
    fmt.Println("جيد")
} else {
    fmt.Println("يحتاج إلى مراجعة")
}

التعريف داخل جملة if

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

if num := 15; num % 2 == 0 {
    fmt.Println("رقم زوجي")
} else {
    fmt.Println("رقم فردي")
}

جملة switch

عندما يكون لديك شروط متعددة على نفس المتغير، فإن switch تكون أوضح وأنظف من سلسلة طويلة من if/else if. تختلف جملة switch في Go عن نظيراتها في لغات أخرى بأنها لا تحتاج إلى break في نهاية كل case.

day := "الأحد"
switch day {
case "السبت", "الأحد":
    fmt.Println("عطلة")
case "الجمعة":
    fmt.Println("استعداد للعطلة")
default:
    fmt.Println("يوم عمل")
}

switch بدون شرط

يمكن استخدام switch بدون قيمة بعدها لتعمل كبديل أنيق لسلسلة if/else if. كل case يحتوي على شرط منطقي مستقل.

temp := 30
switch {
case temp > 35:
    fmt.Println("حار جدًا")
case temp > 25:
    fmt.Println("معتدل")
default:
    fmt.Println("بارد")
}