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

التكرار Swift

في هذا المقال، ستتعلم إنشاء دالة تكرارية. دالة تستدعي نفسها.

تدعو نفسهادالةيُدعى دالة التكرار. وقد يُدعى هذا الأسلوب التكرار.عند إنشاء دالة تكرارية، يجب إنشاء شرط لتجنب التكرار غير المحدود.

كيف يعمل التكرار في Swift؟

func ليميم()
    // ليميم
    recurse()
}
recurse()

الشكل التالي يوضح طريقة دعوة التكرار.

في الرسم البياني للإجراء أعلاه، التكرار يتم تنفيذه بشكل غير محدود.

لمنع التكرار غير المحدود، استخدم دعوة التكرار في جملة الشرط في Swift، مثلجملة if ... else.

مثال 1: طباعة عدد إيجابي

func ليميمل مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم
    print(ل ميم)
    if ل ميم > 0 م
        countDownToZero(num: ل ميم ليم مييم ل ميم ليم مييم)
    }
}
print("Countdown:")
countDownToZero(num:3)

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

حساب العد التنازلي:
3
2
1
0

في برنامج أعلاه، جملة print("Countdown:") تظهر في الشاشة.حساب العد التنازلي:。يتم دعوة الدالة countDownToZero(num:3) التي تأخذ نوع المعلمة Integer.

يتم تنفيذ countDownToZero() جملة الدالة الداخلية، إذا كانت التركيز متوافقة num > 0، countDownToZero() يدعو مرة أخرى الدالة countDownToZero(num: num - 1).

إذا لم تكن التركيز متوافقة، فإنه لا يتم تنفيذ دعوة الدالة ويتوقف التكرار بالتتابع.

لننظر في الخطوات المحددة

تنفيذ الخطوات
الخطواتدعوة دالةطباعةل ميم 0م?
1countDownToZero(3)3نعم
2countDownToZero(2)2نعم
3countDownToZero(1)1نعم
4countDownToZero(0)0لا (انتهاء)

مثال 2: البحث عن ناتج مضاعفة عدد

func ليميمل مييم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم
    if ل ميم 1 م
        return 1
    }
        return ليم ليم مييمل ميم ليم مييمل ميم ليم مييمل ميم ليم مييم
    }
}
let ل ميم 4
let ليييم ليمييم ليم مييمل ميمييم
print("The factorial of \(x) is \(result)")

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

The factorial of 4 is 24

كيف يعمل هذا المثال؟

لننظر خطوة بخطوة

تنفيذ الخطوات
الخطواتالمتغيرات التي يتم نقلهاجملة العودةالقيمة
14عد 4 * عمليه_النصية(بإلى:3)4 * عمليه_النصية(بإلى:3)
23عد 3 * عمليه_النصية(بإلى:2)4 * 3 * عمليه_النصية(بإلى:2)
32عد 2 * عمليه_النصية(بإلى:1)4 * 3 * 2 * عمليه_النصية(بإلى:1)
41عد 14 * 3 * 2 * 1

عندما يمكن العثور على حل للمشكلة في خطوتين تقريبًا، عادة ما يتم استخدام التكرار كبديل للدورات