0Pricing
Swift Academy · درس

التحكم في الحلقات ضمن سياق 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

  1. أساسيات break و continue
  2. العبارات ذات التسميات
  3. الخروج من الحلقات المتداخلة
  4. التحكم في الحلقات ضمن سياق switch
← العودة إلى Swift Academy