0Pricing
Swift Academy · درس

break وcontinue والعبارات ذات التسميات

تحكّم في تدفق الحلقات باستخدام break وcontinue والحلقات ذات التسميات في Swift

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

مرحبًا

تمنحك `break` و`continue` تحكمًا دقيقًا في تنفيذ الحلقات. وتوسّع العبارات ذات التسميات هذا التحكم ليشمل الحلقات المتداخلة. لنتعلم متى تكون كل واحدة منها مناسبة.

break — الخروج المبكر من الحلقة

تنهي `break` الحلقة الحالية فورًا: ```swift for i in 1...10 { if i == 5 { break } print(i) } // 1, 2, 3, 4 ``` يستمر التنفيذ من أول عبارة تلي الحلقة.

continue — تخطي التكرار الحالي

تتخطى `continue` بقية التكرار الحالي وتنتقل إلى التكرار التالي: ```swift for i in 1...10 { if i % 2 == 0 { continue } print(i) } // 1, 3, 5, 7, 9 ``` تكون مفيدة لتخطي العناصر غير الصالحة أو غير المطلوبة.

break في حلقات while

تعمل `break` بالطريقة نفسها في حلقات `while`: ```swift var n = 0 while true { n += 1 if n >= 5 { break } } print(n) // 5 ``` هذا هو النمط الاصطلاحي للخروج من حلقة الأحداث باستخدام `while true / break`.

break في switch — لا عملية صريحة

في Swift، تؤدي حالة `switch` الفارغة إلى خطأ في الترجمة. استخدم `break` للتعبير صراحةً عن عدم تنفيذ أي إجراء: ```swift switch value { case .ignored: break // intentionally no action default: process(value) } ```

الحلقات ذات التسميات

سمِّ الحلقة بمعرّف يتبعه نقطتان: ```swift outerLoop: for row in 0..<3 { for col in 0..<3 { if row == 1 && col == 1 { break outerLoop } print("(\(row),\(col))") } } ``` تخرج `break outerLoop` من الحلقة *الخارجية* بالكامل.

continue مع التسميات

تعمل التسميات مع `continue` أيضًا، إذ تنقل التنفيذ إلى التكرار الخارجي التالي: ```swift outerLoop: for row in 0..<3 { for col in 0..<3 { if col == 1 { continue outerLoop } print("(\(row),\(col))") } } // skips rest of inner loop when col reaches 1 ```

دمج where وbreak

استخدم عبارة `where` لتجنب `break` الصريح كلما أمكن: ```swift // Less idiomatic: for n in 1...100 { if n > 10 { break } print(n) } // More idiomatic: for n in (1...100).prefix(10) { print(n) } ``` فضّل البدائل الوظيفية على `break` الإجرائية عندما يكون ذلك واضحًا.

الإرجاع المبكر مقابل break

داخل الدالة، تخرج `return` من الحلقة ومن الدالة معًا: ```swift func findFirst(_ target: Int, in array: [Int]) -> Int? { for element in array { if element == target { return element } } return nil } ``` غالبًا ما يكون هذا أوضح من استخدام `break` مع تتبع متغير للنتيجة.

تجنب break باستخدام first(where:)

يمكن استبدال العديد من أنماط `break` اليدوية بطرائق المجموعات: ```swift // break version: var found: Int? for n in numbers { if n > 10 { found = n; break } } // idiomatic: let found = numbers.first { $0 > 10 } ``` الإصدار الوظيفي أقصر ويعبّر عن الغرض مباشرةً.

تحقق سريع

أي عبارة تتخطى التكرار **الحالي** وتنتقل إلى التكرار التالي؟

مراجعة

أهم النقاط: • `break` — الخروج من الحلقة فورًا • `continue` — التخطي إلى التكرار التالي • تتيح الحلقات ذات التسميات (`label:`) توجيه `break` و`continue` إلى حلقة خارجية • تتطلب حالات `switch` الفارغة عبارة `break` صريحة • فضّل البدائل الوظيفية (`first(where:)` و`prefix`) على `break` اليدوية كلما أمكن التالي: تسميات الوسائط وأسماء المعلمات في الدوال.

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

هل درس «break وcontinue والعبارات ذات التسميات» مجاني؟

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

ماذا ستتعلم في «break وcontinue والعبارات ذات التسميات»؟

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

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

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

كم من الوقت يستغرق درس «break وcontinue والعبارات ذات التسميات»؟

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

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

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

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

  1. حلقات for-in مع النطاقات
  2. حلقات while وrepeat-while
  3. تكرار عناصر المجموعات باستخدام for-in
  4. break وcontinue والعبارات ذات التسميات
← العودة إلى Swift Academy