English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، ستتعلم إنشاء دالة تكرارية. دالة تستدعي نفسها.
تدعو نفسهادالةيُدعى دالة التكرار. وقد يُدعى هذا الأسلوب التكرار.عند إنشاء دالة تكرارية، يجب إنشاء شرط لتجنب التكرار غير المحدود.
func ليميم() // ليميم recurse() } recurse()
الشكل التالي يوضح طريقة دعوة التكرار.
في الرسم البياني للإجراء أعلاه، التكرار يتم تنفيذه بشكل غير محدود.
لمنع التكرار غير المحدود، استخدم دعوة التكرار في جملة الشرط في Swift، مثلجملة if ... else.
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م? |
---|---|---|---|
1 | countDownToZero(3) | 3 | نعم |
2 | countDownToZero(2) | 2 | نعم |
3 | countDownToZero(1) | 1 | نعم |
4 | countDownToZero(0) | 0 | لا (انتهاء) |
func ليميمل مييم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم ل ميم ليم مييم if ل ميم 1 م return 1 } return ليم ليم مييمل ميم ليم مييمل ميم ليم مييمل ميم ليم مييم } } let ل ميم 4 let ليييم ليمييم ليم مييمل ميمييم print("The factorial of \(x) is \(result)")
عندما تقوم بتشغيل البرنامج التالي، الناتج سيكون:
The factorial of 4 is 24
الخطوات | المتغيرات التي يتم نقلها | جملة العودة | القيمة |
---|---|---|---|
1 | 4 | عد 4 * عمليه_النصية(بإلى:3) | 4 * عمليه_النصية(بإلى:3) |
2 | 3 | عد 3 * عمليه_النصية(بإلى:2) | 4 * 3 * عمليه_النصية(بإلى:2) |
3 | 2 | عد 2 * عمليه_النصية(بإلى:1) | 4 * 3 * 2 * عمليه_النصية(بإلى:1) |
4 | 1 | عد 1 | 4 * 3 * 2 * 1 |
عندما يمكن العثور على حل للمشكلة في خطوتين تقريبًا، عادة ما يتم استخدام التكرار كبديل للدورات