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

دوائر مدمجة Swift

في هذا المقال، ستتعرف من خلال الأمثلة على حلقات المدمجة وكيف تعمل.

إذا كان حلقة موجودة داخل主体 حلقة أخرى، فإنها تُسمى حلقة مدمجة. هذا مثال على حلقة مدمجة for-in.

for i in 1...5 {
    // تعبيرات دورة الخارجية
    for j in 1...2 {
        // تعبيرات دورة الداخلية
    }
    // تعبيرات دورة الخارجية
}

في هذا السياق، يُدعى حلقة for j in 1...2 حلقة داخلية، وتقع داخل جسم حلقة for i in 1...5، التي تُدعى حلقة خارجية.

يجب ملاحظة أن الدورات المدمجة قد لا تحتوي على نفس النوع من الدورات. على سبيل المثال، يمكنك وضع دورة while داخل جسم دورة for، ولكنها لا تزال دورات مدمجة.

دورات المدمجة Swift من for...in

مدمجةدورة for-inتتضمن دورة for-in كتعبير داخل دورة أخرى for-in. يمكنك الحصول على أي عدد من دورات for-in المدمجة حسب الحاجة.

مثال 1: دورات المدمجة Swift من for-in

for i in 1...5 {
    print("تكرار الدائرة الخارجية ", i)
    for j in 1...2 {
        print("تكرار الدائرة الداخلية ", j)
        print("i = \(i); j = \(j)")
    }
}

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

دورة الخارجية تكرارًا 1
دورة الداخلية تكرارًا 1
i = 1; j = 1
دورة الداخلية تكرارًا 2
i = 1; j = 2
دورة الخارجية تكرارًا 2
دورة الداخلية تكرارًا 1
i = 2; j = 1
دورة الداخلية تكرارًا 2
i = 2; j = 2
دورة الخارجية تكرارًا 3
دورة الداخلية تكرارًا 1
i = 3; j = 1
دورة الداخلية تكرارًا 2
i = 3; j = 2
دورة الخارجية تكرارًا 4
دورة الداخلية تكرارًا 1
i = 4; j = 1
دورة الداخلية تكرارًا 2
i = 4; j = 2
دورة الخارجية تكرارًا 5
دورة الداخلية تكرارًا 1
i = 5; j = 1
دورة الداخلية تكرارًا 2
i = 5; j = 2

في البرنامج أعلاه، تتم دورة الدورة الخارجية 5 مرات. في كل تكرار من دورة الخارجية، تتم دورة الدورة الداخلية 2 مرات.

دورات المدمجة while في Swift

مدمجةدورة whileتتضمن دورة while كتعبير داخل دورة أخرى while. يمكن إعداد أي عدد من دورات while المدمجة حسب الحاجة.

مثال 2: دورات المدمجة Swift من while

var i = 1
while i <= 5 {
    print("تكرار الدائرة الخارجية ", i)
    var j = 1
    while j <= 2 {
        print("تكرار الدائرة الداخلية ", j)
        print("i = \(i); j = \(j)")
        j += 1
    }
    i += 1
}

يكون ناتج هذا البرنامج نفسه كما في البرنامج السابق.

دورات المدمجة Swift من repeat...while

مدمجةدورة repeat while تتضمن دورة repeat-while كتعبير داخل دورة أخرى repeat-while. يمكن إعداد أي عدد من دورات while المدمجة حسب الحاجة.

مثال 3: دورات المدمجة Swift من repeat-while

var i = 1
repeat {
    print("تكرار الدائرة الخارجية ", i)
    var j = 1
    repeat {
        print("تكرار الدائرة الداخلية ", j)
        print("i = \(i); j = \(j)")
        j += 1
    } while (j <= 2)
    i += 1
} while (i <= 5)

يكون ناتج هذا البرنامج نفسه كما في البرنامج السابق.

دورات المدمجة المختلفة في Swift

ليس من الضروري أن تكون الدورات المدمجة من نفس النوع. يمكن أيضًا إنشاء تنويعات لدورات المدمجة من خلال وضع نوع دورة داخل دورة أخرى.

مثال 3: دورات المدمجة Swift من while و for

البرنامج أدناه يحتوي على أنواع مختلفة من الدورات المدمجة (دورات while و for-in).

var i = 1
while i <= 5 {
    print("تكرار الدائرة الخارجية ", i)
    for j in 1...2 {
        print("تكرار الدائرة الداخلية ", j)
        print("i = \(i); j = \(j)")
    }
    i += 1
}

يكون ناتج هذا البرنامج نفسه كما في البرنامج السابق.

مثال 4: برنامج Swift لإنشاء نمط باستخدام دوائر Swift

تستخدم الدوائر المدمجة عادةً في البرمجة لإنشاء أنماط. البرنامج التالي يوضح كيفية إنشاء نمط بسيط باستخدام الدوائر المدمجة.

let rows = 5
for i in 1...rows {
    for j in 1...i {
        print("\(j) ", terminator: ")")
    }
    print("")
}

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

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5