Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

النطاقات في حلقات التكرار

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 48 من 86.

لقد كنت تستخدم نطاقات مثل 1...5 في حلقاتك التكرارية، ولكن توفر Swift مرونة أكبر في كيفية تعريف هذه النطاقات. دعنا نستكشف أنواع النطاقات المختلفة وتقنية مفيدة للعد التنازلي.

يتضمن عامل النطاق المغلق (...) كلا الطرفين:

for i in 1...3 {
    print(i)
}
// المخرجات: 1, 2, 3

يستثني عامل النطاق نصف المفتوح (..<) الحد العلوي، وهو مفيد بشكل خاص عند التعامل مع الفهارس التي تبدأ من الصفر:

for i in 0..<3 {
    print(i)
}
// المخرجات: 0, 1, 2

أحياناً تحتاج إلى التكرار بترتيب عكسي. تسمح لك الطريقة reversed() بالتكرار للخلف عبر نطاق معين:

for i in (1...3).reversed() {
    print(i)
}
// المخرجات: 3, 2, 1

لاحظ الأقواس حول النطاق—فهي مطلوبة عند استدعاء reversed() على نطاق. هذه التقنية مثالية للعد التنازلي أو عندما تحتاج إلى معالجة العناصر من الأخير إلى الأول.

challenge icon

التحدي

سهل

اكتب دالة countdown تأخذ n وتعيد سلسلة نصية (string) تحتوي على عد تنازلي من n وصولاً إلى 1، متبوعة بـ "Go!".

استخدم طريقة reversed() على نطاق (range) للتكرار بشكل عكسي وبناء سلسلة العد التنازلي.

المنطق:

  • أنشئ نطاقاً من 1 إلى n وقم بعكسه
  • قم ببناء سلسلة نصية مع كل رقم مفصول بسطر جديد
  • أضف "Go!" في السطر الأخير

المعاملات:

  • n (Int): رقم البداية للعد التنازلي (1 أو أكبر)

المخرجات: سلسلة نصية مع كل رقم عد تنازلي في سطر خاص به، تنتهي بـ "Go!" (String). التنسيق:

3
2
1
Go!

على سبيل المثال، إذا كانت n هي 3، فإن الدالة تعيد "3\n2\n1\nGo!".

ورقة مرجعية

توفر Swift عاملي نطاق للحلقات التكرارية:

يتضمن عامل النطاق المغلق (...) كلا الطرفين:

for i in 1...3 {
    print(i)
}
// المخرجات: 1, 2, 3

يستثني عامل النطاق نصف المفتوح (..<) الحد العلوي:

for i in 0..<3 {
    print(i)
}
// المخرجات: 0, 1, 2

للتكرار بشكل عكسي عبر نطاق، استخدم الطريقة reversed():

for i in (1...3).reversed() {
    print(i)
}
// المخرجات: 3, 2, 1

ملاحظة: الأقواس حول النطاق مطلوبة عند استدعاء reversed().

جرّب بنفسك

func countdown(n: Int) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات