النطاقات في حلقات التكرار
جزء من قسم الأساسيات في رحلة 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() على نطاق. هذه التقنية مثالية للعدّ التنازلي أو عندما تحتاج إلى معالجة العناصر من الأخير إلى الأول.
التحدي
سهلاكتب دالة countdown تأخذ n وتُرجع سلسلة نصية تحتوي على عدّ تنازلي من n إلى 1، يتبعها "Go!".
استخدم الطريقة reversed() على نطاق للتكرار إلى الخلف وبناء سلسلة العدّ التنازلي.
المنطق:
- أنشئ نطاقًا من
1إلىnواعكسه - أنشئ سلسلة نصية مع فصل كل رقم بسطر جديد
- أضف "Go!" في السطر الأخير
المعاملات:
n(Int): الرقم الابتدائي للعدّ التنازلي (1 أو أكبر)
القيمة المُعادة: سلسلة نصية يظهر فيها كل رقم من أرقام العدّ التنازلي في سطر مستقل، وتنتهي بـ "Go!" (String). التنسيق:
3
2
1
Go!على سبيل المثال، إذا كانت قيمة n هي 3، فستُعيد الدالة "3\n2\n1\nGo!".
جرّب بنفسك
func countdown(n: Int) -> String {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)تدرّب بنفسك: Playground لـ Swift