التحكم في الحلقات ضمن سياق switch
ميّز بين break في الحلقات وbreak في عبارات switch.
التحكم في الحلقات ضمن سياق switch درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
break في switch
داخل switch، تنهي break حالة switch. ولا تنتقل حالات Swift تلقائيًا إلى الحالة التالية، لذا تكون break اختيارية عادةً، لكنها مسموحة.
let n = 2
switch n {
case 1:
print("one")
case 2:
print("two")
break
default:
print("other")
}حالة فارغة مع break
استخدموا break لجعل الحالة لا تنفّذ شيئًا صراحةً، فهذا أوضح من ترك جسم فارغ.
let code = 0
switch code {
case 0:
break // intentionally ignore
default:
print("handled", code)
}
print("after switch")break في switch داخل حلقة
عندما توجد switch داخل حلقة، تخرج break العادية من switch، لا من الحلقة.
for n in 1...4 {
switch n {
case 3:
break // exits switch only
default:
print(n)
}
}
print("loop finished")الخروج من الحلقة من داخل switch
للخروج من الحلقة المحيطة من داخل switch، سمّوا الحلقة واستخدموا break label.
loop: for n in 1...5 {
switch n {
case 3:
break loop
default:
print(n)
}
}
print("done")continue من داخل switch
تشير continue العادية داخل switch إلى الحلقة المحيطة، فتنتقل إلى تكرارها التالي.
for n in 1...5 {
switch n {
case let x where x % 2 == 0:
continue
default:
print(n)
}
}لماذا يهم هذا الفرق
يُعد الخلط بين break الخاصة بـ switch وbreak الخاصة بالحلقات خطأً شائعًا. تذكروا: تخرج break المجردة داخل switch من switch فقط.
for n in 1...3 {
switch n {
case 2:
break
default:
print("value", n)
}
}
print("all values processed")fallthrough
إذا كنتم تريدون سلوك الانتقال التلقائي فعلًا، فاستخدموا الكلمة المفتاحية الصريحة fallthrough.
let n = 1
switch n {
case 1:
print("one")
fallthrough
case 2:
print("two")
default:
print("done")
}وضوح break ذات التسمية
حتى عندما لا تكون مطلوبة strictly، توضح break ذات التسمية أن المقصود هو الحلقة.
scan: for value in [10, 20, 30, 40] {
switch value {
case 30:
break scan
default:
print(value)
}
}دمج عبارات where
تتيح عبارات النمط where مع continue إجراء التصفية بأناقة داخل switch.
for n in 1...6 {
switch n {
case let x where x > 4:
continue
default:
print(n)
}
}switch وحلقة متداخلتان
عند تداخل الحلقات مع switch، تجعل التسميات الهدف واضحًا بلا التباس.
outer: for i in 1...3 {
for j in 1...3 {
switch j {
case 2:
break outer
default:
print(i, j)
}
}
}أفضل ممارسة
استخدموا break المجردة فقط للخروج من حالة switch، وسمّوا الحلقة دائمًا عندما تقصدون الخروج منها من داخل switch.
main: for n in 1...5 {
switch n {
case 4:
break main
default:
print(n)
}
}تحقق سريع
اختبروا الفرق بين break الخاصة بـ switch وbreak الخاصة بالحلقات.
مراجعة
في switch، تخرج break المجردة من حالة switch فقط، إذ لا يوجد انتقال تلقائي ضمني في Swift؛ استخدموا fallthrough لهذا الغرض. وللخروج من حلقة محيطة من داخل switch، سمّوا الحلقة واستخدموا break label. أما continue المجردة فتبقى مرتبطة بالحلقة.
loop: for n in 1...4 {
switch n {
case 3: break loop
default: print(n)
}
}الأسئلة الشائعة
هل درس «التحكم في الحلقات ضمن سياق switch» مجاني؟
نعم — نص درس «التحكم في الحلقات ضمن سياق switch» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحكم في الحلقات ضمن سياق switch»؟
ميّز بين break في الحلقات وbreak في عبارات switch. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحكم في الحلقات ضمن سياق switch»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات break و continue
- العبارات ذات التسميات
- الخروج من الحلقات المتداخلة
- التحكم في الحلقات ضمن سياق switch