English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دوائر while و repeat...while في Swift

في هذا المقال، ستتعلم كيفية إنشاء دوائر while و repeat...while في برمجة Swift.

في المقال السابق، تعرفنا علىدائرة for-inيؤدي مجموعة من المهام المعدة لعدد محدد من المرات. في هذا المقال، ستتعلم كيفية استخدام while و repeat..while كخيارات بديلة للدائرة for-in عند عدم معرفة عدد التكرارات المطلوبة.

ي�行ر دائرة تعليمات حتى يصبح الشرط كـ false. من الأفضل استخدام هذا النوع من الدوائر عندما تكون عدد التكرارات غير معروف عند بدء التكرار الأول.

1. cycle while في Swift

يحلل هذا الدائرة في بداية كل دورة.

جملة cycle while تكون:

while (TestExpression) {
    // تعليمات
}

كيف يعمل cycle while؟

TestExpression هو تعبير منطقي.

إذا تم حساب TestExpression كـ true،

  • سيتم تنفيذ التعليمات داخل cycle while.

  • ويتم حساب TestExpression مرة أخرى.

استمر في هذا العمل حتى يتم حساب TestExpression كـ false. إذا تم حساب TestExpression كـ false، فإن cycle while ينتهي.

خريطة تدفق cycle while

مثال 1: cycle while

var currentLevel:Int = 0, finalLevel:Int = 5
let gameCompleted = true
while (currentLevel <= finalLevel) {
    // لعب اللعبة
    if (gameCompleted) {
        print("لقد نجحت في مستوى \(currentLevel)")
        currentLevel += 1
    }
}
print("خارج cycle while")

عند تشغيل هذا البرنامج، الناتج سيكون:

لقد نجحت في مستوى 0
لقد نجحت في مستوى 1
لقد نجحت في مستوى 2
لقد نجحت في مستوى 3
لقد نجحت في مستوى 4
لقد نجحت في مستوى 5
خارج cycle while

في البرنامج المذكور أعلاه، تم تعيين المتغيرين currentLevel و finalLevel إلى 0، والمعلمة gameCompleted إلى true.

في كل دورة من cycle while، سيقوم بفحص شرط الحكم currentLevel <= finalLevel. إذا كان الشرط يعود بـ true، فإنه يستمر في تنفيذ التعليمات داخل cycle while، وإلا يتم إنهاء الدائرة.

خطوات التنفيذ
التحويلالشرط (currentLevel <= finalLevel)الإخراج
10 <= 5 (صحيح)لقد نجحت في مستوى 0
21 <= 5 (صحيح)لقد نجحت في مستوى 1
32 <= 5 (صحيح)لقد نجحت في مستوى 2
43 <= 5 (صحيح)لقد نجحت في مستوى 3
54 <= 5 (صحيح)لقد نجحت في مستوى 4
65 <= 5 (صحيح)لقد نجحت في مستوى 5
76 <= 5 (خطأ)خارج cycle while

2. تكرار cycle while

يحلل هذا الدائرة في نهاية كل دورة. يشبه cycle ... while دائرة ولكن هناك فرق رئيسي. يتم تنفيذ جسم cycle ... while مرة واحدة قبل فحص تعبير التحقق.

جملة cycle .. while تكون:

repeat {
    // تعليمات
    ...
}

كيف يعمل cycle ... while؟

يكرر ... بينما يتم تنفيذ جسم الدائرة مرة واحدة (قبل فحص تعبير التحقق). فقط بهذا الشكل، يتم فحص تعبير التحقق.

إذا كان testExpression يُحسب كـ true، يتم تنفيذ الأوامر داخل الدائرة، ثم يتم حساب testExpression مرة أخرى. يستمر هذا حتى يكون testExpression خطأ.

تتوقف دائرة repeat... while عند أن يكون testExpression خطأ.

رسومات دائرة repeat ... while

مثال 2: دائرة repeat ... while

var currentLevel:Int = 0, finalLevel:Int = 5
let gameCompleted = true
repeat {
    // لعب اللعبة
    if (gameCompleted) {
        print("لقد نجحت في مستوى \(currentLevel)")
        currentLevel += 1
    }
}
print("خارج دائرة repeat while")

عند تشغيل هذا البرنامج، الناتج سيكون:

لقد نجحت في مستوى 0
لقد نجحت في مستوى 1
لقد نجحت في مستوى 2
لقد نجحت في مستوى 3
لقد نجحت في مستوى 4
لقد نجحت في مستوى 5
خارج دائرة repeat while

في المثال السابق، يتم تنفيذ الأوامر داخل الدائرة لأول مرة. للإعادة التالية، يتم فحص الشرط currentLevel <= finalLevel.

إذا كان الشرط يعود بـ true، يتم تنفيذ الأوامر داخل دائرة while، وإلا يتم إنهاء الدائرة.

خطوات التنفيذ
الإعادةشرط (currentLevel <= finalLevel)Output
10 <= 5 (صحيح)لقد نجحت في مستوى 0
21 <= 5 (صحيح)لقد نجحت في مستوى 1
32 <= 5 (صحيح)لقد نجحت في مستوى 2
43 <= 5 (صحيح)لقد نجحت في مستوى 3
54 <= 5 (صحيح)لقد نجحت في مستوى 4
65 <= 5 (صحيح)لقد نجحت في مستوى 5
76 <= 5 (خطأ)

خارج دائرة repeat while

على الرغم من أن دوائر repeat و repeat while لها نفس الخطوات التنفيذية، إلا أن شرط currentLevel <= finalLevel في دائرة repeat... while، يتم حسابه فقط بعد تنفيذ الأوامر الموجودة داخلها.

لكن في while، يتم التحقق من شرط currentLevel <= finalLevel قبل بدء تنفيذ الشروط.

3. دورة while غير محدودة

إذا لم يتم حساب تعبير الاختبار كـ false أبدًا، يتم تنفيذ جسم while و دورة repeat..while مرة بعد مرة دون انتهاء.

مثال 3: دورة while غير محدودة

while (true) {
   print("مرحبًا، عالم!")
}

 

repeat {
   print("مرحبًا، عالم!")
}} while (true)

عند تشغيل هذا البرنامج، الناتج سيكون:

مرحبًا، عالم!
مرحبًا، عالم!
.
.
.

عندما تقوم بتشغيل البرنامج، ستنفذ دورات while و repeat..while مرة بعد مرة دون انتهاء. لذلك، يمكنك رؤية النتائج المتكررة في وحدة التحكم."مرحبًا العالم!".