0Pricing
Swift Academy · درس

حلقات while وrepeat-while

تعلّم الحلقات المعتمدة على الشروط وضمان تنفيذ واحد على الأقل باستخدام repeat-while

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

مرحبًا

عندما لا يكون عدد التكرارات معروفًا مسبقًا، تكون حلقتا `while` و`repeat-while` الخيار المناسب. لنتعرّف إلى الحالات التي تُستخدم فيها كل منهما وكيفية استخدامهما.

حلقة while

تقيّم حلقة `while` شرطها *قبل* كل تكرار: ```swift var count = 0 while count < 5 { print(count) count += 1 } // prints 0, 1, 2, 3, 4 ``` إذا كان الشرط خاطئًا منذ البداية، فلن تُنفَّذ الكتلة مطلقًا.

حلقة repeat-while

تقيّم حلقة `repeat-while` شرطها *بعد* كل تكرار، مما يضمن تنفيذها مرة واحدة على الأقل: ```swift var x = 10 repeat { print(x) x -= 3 } while x > 0 // prints 10, 7, 4, 1 ```

while مقابل repeat-while

استخدم `while` عندما يكون من الممكن ألا تحتاج إلى تنفيذ الحلقة مطلقًا. استخدم `repeat-while` عندما يجب تنفيذ الحلقة مرة واحدة على الأقل: ```swift // Reading input until valid — must try at least once: repeat { input = readLine() ?? "" } while input.isEmpty ```

الحلقات اللانهائية باستخدام while true

تستمر حلقة `while true` إلى الأبد حتى الوصول إلى `break`، وهي شائعة في حلقات الأحداث: ```swift while true { let event = nextEvent() if event == .quit { break } handleEvent(event) } ``` احرص دائمًا على وجود شرط خروج يمكن الوصول إليه.

مثال على العد التنازلي

```swift var countdown = 5 while countdown > 0 { print("\(countdown)...") countdown -= 1 } print("Liftoff!") ``` هذا نمط تقليدي لحلقة while؛ إذ تُنقص القيمة حتى يصبح الشرط خاطئًا.

تجنّب الحلقات اللانهائية

أخطاء شائعة تؤدي إلى حلقات لانهائية: ```swift var i = 0 while i < 5 { print(i) // forgot i += 1 ← infinite loop! } ``` تحقّق دائمًا من تحديث متغير الحلقة ومن أن الشرط سيصبح خاطئًا في النهاية.

while مع ربط Optional

اجمع بين `while` والربط الاختياري لمعالجة تسلسل حتى الوصول إلى nil: ```swift var items: [Int] = [1, 2, 3] while let value = items.first { print(value) items.removeFirst() } ``` هذا النمط مناسب لاستهلاك المجموعات بطريقة تدميرية واضحة.

مثال على حلقة لعبة

```swift var lives = 3 var gameOver = false while !gameOver { let hit = Bool.random() if hit { lives -= 1 } if lives == 0 { gameOver = true } } print("Game Over") ``` تستخدم حلقات الألعاب الفعلية هذا النمط للاستمرار في التشغيل حتى يتحقق شرط نهائي.

حلقات while متداخلة

يمكن تداخل حلقات while، وهو أمر شائع في خوارزميات التحليل أو المصفوفات: ```swift var row = 0 while row < 3 { var col = 0 while col < 3 { print("(\(row),\(col))", terminator: " ") col += 1 } print(); row += 1 } ```

اختبار سريع

أي حلقة تضمن تنفيذ كتلتها **مرة واحدة على الأقل**؟

مراجعة

أهم النقاط: • `while condition { }` — يتحقق من الشرط قبل كل تنفيذ، وقد لا تُنفَّذ الحلقة مطلقًا • `repeat { } while condition` — يتحقق من الشرط بعد التنفيذ، وتُنفَّذ الحلقة مرة واحدة على الأقل • `while true { ... break }` — نمط حلقة الأحداث • احرص دائمًا على تقدم متغير الحلقة نحو الإنهاء • اجمع بين `while` والربط الاختياري لاستهلاك التسلسلات بطريقة واضحة التالي: التكرار عبر المجموعات باستخدام for-in.

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

هل درس «حلقات while وrepeat-while» مجاني؟

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

ماذا ستتعلم في «حلقات while وrepeat-while»؟

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

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

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

كم من الوقت يستغرق درس «حلقات while وrepeat-while»؟

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

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

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

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

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