0Pricing
Swift Academy · درس

‏Switch شامل للقيم

غطِّ جميع الحالات أو استخدم فرعًا افتراضيًا.

‏Switch شامل للقيم درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

ما الذي يفعله switch

يقارن switch قيمةً بعدة حالات، وينفذ أول حالة مطابقة. وهو بديل واضح لسلاسل if/else-if الطويلة.

let day = 3
switch day {
case 1:
    print("Monday")
case 2:
    print("Tuesday")
case 3:
    print("Wednesday")
default:
    print("Other")
}

لا يوجد انتقال ضمني إلى الحالة التالية

بخلاف C، لا تنتقل حالات Swift تلقائيًا إلى الحالة التالية. بعد تنفيذ الحالة المطابقة، ينتهي switch. ولا حاجة إلى break.

let n = 1
switch n {
case 1:
    print("one")
case 2:
    print("two")
default:
    print("many")
}

يجب أن تكون حالات switch شاملة

يجب أن يغطي switch كل قيمة ممكنة. وبالنسبة إلى Int، لا يمكنك سرد جميع القيم، لذا توفر حالة default.

let code = 500
switch code {
case 200:
    print("OK")
case 404:
    print("Not Found")
default:
    print("Unhandled: \(code)")
}

حالة default

تلتقط حالة default أي قيمة لم تطابق الحالات السابقة. ويجب أن تأتي في النهاية.

let grade = "X"
switch grade {
case "A":
    print("Excellent")
case "B":
    print("Good")
default:
    print("Needs review")
}

استخدام switch مع النصوص

يعمل switch مع أي قيمة قابلة للمقارنة، بما في ذلك النصوص.

let command = "start"
switch command {
case "start":
    print("Starting")
case "stop":
    print("Stopping")
default:
    print("Unknown command")
}

لا توجد حالات فارغة

يجب أن تحتوي كل حالة على تعليمة واحدة على الأقل. وإذا أردت حقًا ألا تنفذ الحالة شيئًا، فاكتب break.

let n = 2
switch n {
case 1:
    print("one")
case 2:
    break
default:
    print("other")
}
print("done")

switch كتعليمة

ينفذ switch التعليمات، ولا يعيد قيمةً بنفسه. ولإنتاج قيمة، أسندها داخل كل حالة أو استخدم الحالة لاستدعاء الدوال.

let level = 2
var label: String
switch level {
case 1: label = "low"
case 2: label = "mid"
default: label = "high"
}
print(label)

استخدام switch مع Bool

يمكنك استخدام switch مع Bool من خلال الحالتين true وfalse. ولا حاجة إلى default لأن الحالتين مغطاتان.

let isReady = true
switch isReady {
case true:
    print("Go")
case false:
    print("Wait")
}

لا تحتاج Enums إلى default

عند استخدام switch مع enum ومعالجة كل حالاته، يكون switch شاملًا بالفعل ولا تكون default ضرورية.

enum Direction { case north, south }
let d = Direction.north
switch d {
case .north: print("Up")
case .south: print("Down")
}

منطق متعدد المسارات سهل القراءة

يحافظ switch على ترتيب القرارات متعددة المسارات. فكل نتيجة موجودة في حالة معنونة مستقلة، مما يسهل استعراضها وتوسيعها.

let score = 72
var result: String
switch score {
case 90...100: result = "A"
case 80..<90: result = "B"
case 70..<80: result = "C"
default: result = "F"
}
print(result)

موضع default

يجب أن تكون default الحالة الأخيرة. فوضعها في وقت مبكر سيجعل الحالات اللاحقة غير قابلة للوصول، وهذا ما تمنعه Swift.

let x = 7
switch x {
case 0:
    print("zero")
case 7:
    print("seven")
default:
    print("something else")
}

تحقق سريع

اختبر switch الشامل.

خلاصة: switch شامل على القيم

يطابق switch في Swift أول حالة، ولا ينتقل ضمنيًا إلى الحالة التالية، ويجب أن يكون شاملًا. استخدم default مع الأنواع المفتوحة مثل Int أو String؛ أما التعدادات التي غُطيت جميع حالاتها فلا تحتاج إلى default.

let n = 3
switch n {
case 1: print("a")
default: print("b")
}

الأسئلة الشائعة

هل درس «‏Switch شامل للقيم» مجاني؟

نعم — نص درس «‏Switch شامل للقيم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏Switch شامل للقيم»؟

غطِّ جميع الحالات أو استخدم فرعًا افتراضيًا. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «‏Switch شامل للقيم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏Switch شامل للقيم
  2. مطابقة النطاقات والأزواج
  3. ربط القيم وعبارات where
  4. الحالات المركبة و Fallthrough
← العودة إلى Swift Academy