التكرار عبر العناصر
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 69 من 86.
الآن بعد أن عرفت كيفية إنشاء المصفوفات وتعديلها، دعنا نستكشف كيفية معالجة كل عنصر واحداً تلو الآخر. تجعل حلقة for-in هذا الأمر في غاية السهولة.
عندما تستخدم حلقة for-in مع مصفوفة، فإن Swift تمنحك كل عنصر بالترتيب تلقائياً:
let fruits = ["Apple", "Banana", "Cherry"]
for fruit in fruits {
print(fruit)
}
// Apple
// Banana
// Cherryيأخذ المتغير fruit كل قيمة من المصفوفة خلال كل تكرار. يمكنك تسمية هذا المتغير بأي شيء منطقي لبياناتك.
هذا النمط مثالي لإجراء العمليات على كل عنصر، مثل حساب المجموع:
let prices = [9.99, 14.50, 3.25]
var total = 0.0
for price in prices {
total += price
}
print(total) // 27.74يمكنك أيضاً استخدام الحلقة (loop) لإنشاء مصفوفات جديدة بناءً على مصفوفات موجودة:
let numbers = [1, 2, 3, 4]
var doubled = [Int]()
for number in numbers {
doubled.append(number * 2)
}
print(doubled) // [2, 4, 6, 8]يعد التكرار عبر المصفوفات أحد أكثر العمليات شيوعاً في البرمجة، لذا فإن إتقان هذا النمط سيفيدك كثيراً.
التحدي
سهلاكتب دالة باسم countPositives تأخذ numbers وتعيد عدد الأرقام الموجبة في المصفوفة.
استخدم حلقة for-in للمرور عبر كل عنصر وحساب عدد العناصر التي تزيد عن الصفر.
المعاملات:
numbers([Int]): مصفوفة من الأعداد الصحيحة
القيمة المرجعة: عدد الأرقام الموجبة (الأكبر من 0) في المصفوفة (Int)
مثال: إذا كانت numbers هي [-3, 5, 0, 8, -1, 12]، يجب أن تعيد الدالة 3 (الأرقام الموجبة هي 5 و 8 و 12).
ورقة مرجعية
استخدم حلقة for-in للتكرار عبر كل عنصر من عناصر المصفوفة:
let fruits = ["Apple", "Banana", "Cherry"]
for fruit in fruits {
print(fruit)
}
// Apple
// Banana
// Cherryيأخذ متغير الحلقة (fruit في هذا المثال) كل قيمة من المصفوفة خلال كل تكرار.
يمكنك استخدام حلقات for-in لحساب المجاميع:
let prices = [9.99, 14.50, 3.25]
var total = 0.0
for price in prices {
total += price
}
print(total) // 27.74يمكنك أيضاً بناء مصفوفات جديدة من خلال التكرار عبر المصفوفات الموجودة:
let numbers = [1, 2, 3, 4]
var doubled = [Int]()
for number in numbers {
doubled.append(number * 2)
}
print(doubled) // [2, 4, 6, 8]جرّب بنفسك
func countPositives(numbers: [Int]) -> Int {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية13التكرار عبر المتسلسلات
التكرار عبر العناصرطريقة التعداد (enumerate)التكرار عبر النصوص - الجزء الأولالتكرار عبر النصوص - الجزء الثاني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)