النطاقات في Switch
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 10 من 56.
لقد استخدمت switch مع النطاقات في الأساسيات. نفس الحيلة تتوسع لتشمل مشاكل التصنيف الحقيقية حيث تغطي كل حالة مجموعة من القيم.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// warmتستخدم الـ case ..<0 الأولى صيغة النطاق أحادي الجانب: "أي قيمة أقل تماماً من 0". يمكنك استخدام 0... لتعني "0 أو أكبر" أيضاً.
يتم فحص الحالات من الأعلى إلى الأسفل وأول تطابق يتم اعتماده، لذا قم بترتيبها من الأدنى إلى الأعلى (أو استخدم default للحالة الشاملة).
التحدي
مبتدئاقرأ عددًا صحيحًا واحدًا من المدخلات: درجة الحرارة بالدرجة المئوية. اطبع أحد هذه التصنيفات باستخدام switch واحدة مع حالات النطاق (range cases):
- أقل من
0(الأرقام السالبة):freezing 0...9:cold10...19:mild20...29:warm30...39:hot40فما فوق:scorching
للمدخل 22، المخرج هو warm.
ورقة مرجعية
استخدم switch مع حالات النطاق (range cases) لتصنيف القيم. يتم التحقق من الحالات من الأعلى إلى الأسفل؛ أول مطابقة هي التي تفوز.
let temp = 22
switch temp {
case ..<0: print("freezing") // جانب واحد: أي شيء أقل من 0
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot") // شامل للكل
}
// warm..<0— نطاق من جانب واحد: أي قيمة أقل تماماً من 040...— نطاق من جانب واحد: 40 أو أكبر- رتب الحالات من الأدنى إلى الأعلى؛ استخدم
defaultللحالات المتبقية الشاملة
جرّب بنفسك
let temp = Int(readLine()!)!
// TODO: قم بعمل switch على temp باستخدام النطاقات، واطبع التسمية المطابقة
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات