الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار بخوص Iteration و Recursion.

بدأه طموح لاينثني في 3 نوفمبر 2011 · 3 رد · 547 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم....

هل طريقة عمل Iteration نفس طريقة عمل Recursion؟؟؟

يعني مثلا هذا الكود :

import javax.swing.*;
public class buss {
	public static void main(String[]args){
		int i;
		String str=JOptionPane.showInputDialog("E");
		i=Integer.parseInt(str);

 while(i>0){
      i--;
  	System.out.println(i+"");
  		 i--;
 }
	}
}

هوه نفسه لو قلنا بإستخدام Recursion:

	public void nontail(int i){
	if (i > 0) {

		system.out.print ( i + “”);
		nontail (i-1);
	}
}

متأسفة الكود الثاني بهذه الطريقة لكي يكون سؤالي المطلوب أوضح :

	public void nontailtail(int i){
	if (i > 0) {
		nontailtail (i-1);
		system.out.print ( i + “”);
		nontailtail (i-1);
	}
}

جزاااكم الله كل خير

#2

الهدف العام من الRecursion و الIteration هو التكرار مع العلم ان بعض اللغات الوظيفية (Functional programming) لاتملك كلمات مفتاحيه مثل for while لذالك فهي تعتمد في التكرار على خاصيه الRecursion ،

لو ان لدينا الهرم الاتي

JFrame -> JPanel -> JButton

حيث ان JFrame يحتوي على JPanel وهو بدوره يحتوي JButton

فيمكننا ان نستعمل الRecursion في الكود الاتي لمعرفه الاب الاعلى للJbutton) (وهو بالطبع الJFrame)

Component getHigherParent(Component com){
        if (com.getParent() != null) {
           getHigherParent(com.getParent());
        }
        return com;
    }

هذا الكود غير مجرب وهو للتوضيح فقط

تم تعديل هذه المشاركة بواسطة ahmedYagoub في 4 نوفمبر 2011 في 13:12

#3

شكرا لك على التوضيح

#4

يمكنك حل أي مشكلة بالطريقتين لكن أحياناً أحدهم يكون أصعب مع الآخر

يتميز التكرار العادي بأنه لا يستهلك ذاكرة مثل التعاودية

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة