جملة Switch
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 29 من 86.
عندما تقوم بفحص قيمة واحدة مقابل العديد من المطابقات المحتملة، فإن switch statement توفر بديلاً أكثر تنظيماً لسلاسل else if الطويلة. وهي مفيدة بشكل خاص عندما يكون لديك عدة حالات منفصلة للتعامل معها.
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}تقوم لغة Swift بمقارنة القيمة الموجودة بعد switch بكل case. وعندما تجد تطابقاً، تقوم بتنفيذ الكود الخاص بتلك الحالة. لاحظ كيف يمكنك دمج قيم متعددة في حالة واحدة باستخدام الفواصل.
تتعامل الحالة default مع أي قيم لا تطابق الحالات الأخرى — وهي مطلوبة عندما لا تغطي حالاتك كل قيمة ممكنة. وعلى عكس بعض اللغات الأخرى، لا ينتقل switch في Swift إلى الحالة التالية تلقائيًا، لذا لست بحاجة إلى عبارات break.
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}التحدي
سهلاكتب دالة getSeasonActivity تأخذ season وتُرجع نشاطاً موصى به لهذا الموسم.
استخدم جملة switch لمطابقة الموسم وإرجاع النشاط المناسب.
الحالات:
"Spring"- تُرجع"Go hiking""Summer"- تُرجع"Go swimming""Fall"،"Autumn"- تُرجع"Go apple picking"(كلاهما يجب أن يُرجع نفس النشاط)"Winter"- تُرجع"Go skiing"- أي قيمة أخرى - تُرجع
"Stay home"
المعاملات:
season(String): اسم الموسم
المخرجات: النشاط الموصى به كـ String
ورقة مرجعية
توفر جملة switch بديلاً أكثر ترتيباً لعدة جمل else if عند التحقق من قيمة واحدة مقابل العديد من المطابقات المحتملة.
الصيغة الأساسية:
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}نقاط رئيسية:
- تقارن لغة Swift القيمة الموجودة بعد
switchمع كلcase - يمكن دمج قيم متعددة في حالة (case) واحدة باستخدام الفواصل
- تتعامل الحالة
defaultمع القيم التي لا تطابق الحالات الأخرى، وهي مطلوبة عندما لا تغطي الحالات كل قيمة ممكنة - لا تنتقل جملة switch في Swift تلقائياً إلى الحالة التالية (fall through)، لذا فإن جمل
breakليست ضرورية
مثال مع قيم الإرجاع:
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}جرّب بنفسك
func getSeasonActivity(season: String) -> String {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)