جملة Switch مع النطاقات
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 30 من 86.
تصبح عبارات Switch أكثر قوة عندما تستخدم النطاقات بدلاً من القيم الفردية. هذا مثالي لتصنيف الأرقام إلى مجموعات، مثل تحويل الدرجة إلى تقدير.
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
case 60..<70:
print("D")
default:
print("F")
}يقوم عامل ... بإنشاء نطاق مغلق يتضمن كلا الطرفين، لذا فإن 90...100 يطابق 90، 91، وصولاً إلى 100. ويقوم عامل ..< بإنشاء نطاق نصف مفتوح يستثني الحد العلوي — حيث يطابق 80..<90 الأرقام من 80 إلى 89.
تتحقق لغة Swift من كل حالة بالترتيب وتنفذ أول حالة متطابقة. بما أن درجتنا هي 85، فإنها تقع ضمن 80..<90، لذا سيتم طباعة "B". هذا النهج أنظف بكثير من كتابة شروط else if متعددة باستخدام معاملات المقارنة.
التحدي
سهلاكتب دالة getAgeCategory تأخذ age وتعيد فئة المرحلة العمرية بناءً على نطاقات العمر.
استخدم جملة switch مع النطاقات لتصنيف العمر إلى واحدة من خمس مراحل حياتية.
الشروط:
0...2- تعيد"Infant"3...12- تعيد"Child"13...19- تعيد"Teenager"20...64- تعيد"Adult"65...120- تعيد"Senior"- أي قيمة أخرى - تعيد
"Invalid age"
المعاملات:
age(Int): عمر الشخص
المخرجات: فئة المرحلة العمرية كـ String
ورقة مرجعية
يمكن لبيانات Switch استخدام النطاقات (ranges) لمطابقة القيم ضمن فترات محددة:
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
default:
print("F")
}يقوم عامل التشغيل ... بإنشاء نطاق مغلق (closed range) يتضمن كلا الطرفين (على سبيل المثال، 90...100 يطابق من 90 إلى 100).
يقوم عامل التشغيل ..< بإنشاء نطاق نصف مفتوح (half-open range) يستثني الحد العلوي (على سبيل المثال، 80..<90 يطابق من 80 إلى 89).
تتحقق لغة Swift من كل حالة بالترتيب وتنفذ أول حالة مطابقة.
جرّب بنفسك
func getAgeCategory(age: Int) -> 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)