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

كيفيه إعطاء عدد لا نهائى من المتغيرات لدالة

بدأه Mahmoud Kelany في 1 أكتوبر 2010 · 3 رد · 414 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

نريد ان نتعرف اليوم على بعض التقنيات الجديده على بعض الناس فى الـمتغيرات المعطاه لأى داله

نريد ان نقوم بعمل داله تستقبل اى عدد من المتغيرات وتقوم انت بعد ذلك بالتعامل مع هذه المتغيرات

مثلا

نريد نعمل داله تقوم باسترجاع اكبر قيمه موجوده من بين مجموعه من القيم

انت لا تعلم كم قيمه ستدخلها

وانت تريد ان تقوم بعمل داله تستقبل منك مره رقمين وتقوم بارجاع اكبر رقم فيهما

ومره اخرى تقوم باستقبال 4 ارقام او 3 او 9 او ... كيفما شأت وتقوم بارجاع القيمه الاكبر من بين تلك الارقام

لو اردت ان تقوم بعمل داله تعود باكبر قيمه بين رقمين تقوم مثلا بعمل هكذا

public double  max(int x , int y){

}

كدا انت اعطيتها رقمين وهى سوف تتعود بالقيمه الاكبر

اذا اردت ان تعطيها 4 ارقام فيكون هكذا

public double  max(int x , int y , int z , int w){

}

او تقوم بعمل array

public double max(int num[]) {
}

ولكنك سوف تقوم بتحديد حجم الـ array

ما نريد فعله هى داله تعطيها اى عدد من المتغيرات

وهى سوف تستقبله منك

مثلا عدد المتغيرات ممكن يكون 1 او 2 او 3 او 4 او ... حسب احتياجك لعدد المتغيرات

كيف يتم عمل هذه الداله

هى ان تقوم بعمل داله عاديه بالطريقه المعروفه

لكن فالـ prameters لهذه الداله بدلا من ان تفعل

public double max(double numbers) {
}

تضع 3 نقاط (...) بين كلمه double وكلمه numbers

لكن ما معنى هذه النقاط

وكيف تتم ترجمتها

معنى هذه النقاط انك سوف تعطى هذه الداله اى عدد من المتغيرات او لا تعطيها

يعنى هكذا

max();
max(num1);
max(num1, num2);
max(num1, num2, num3);

يتم ترجمه هذه النقاط على ان المتغير المعرفه عليه هذه النقاط وهو فى حالتنا numbers

يكون هذا المتغير بمثابه array ولكن حجمه فى كل مره يختلف باختلاف عدد المتغيرات المعطاه لهذه الداله

هذا المثال سوف يوضح اكثر هذا الشرح

/**
 *
 * @author Mahmoud Kelany
 */
public class UnlimetedParameters {

    public static double max(double... numbers) {
        double max = numbers[0];
        for (double num : numbers) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    }

    public static void main(String args[]) {
        double num1 = 23;
        double num2 = 131;
        double num3 = 21;
        max();
        max(num1);
        max(num1, num2);
        max(num1, num2, num3);
        System.out.println("Numbers : num1 = " + num1 + " , num2 = " + num2 + ", num3 = " + num3);
        System.out.println("max (num1 , num2 , num3) = " + max(num1, num2, num3));
        System.out.println("max (num1 , num2) = " + max(num1, num2));
        System.out.println("max (num1 , num3) = " + max(num1, num3));
    }
}

بالتوفيق :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 2 أكتوبر 2010 في 13:55

1

Software Developer
Mahmoudkelany.com


 

#2

شكرا اخى محمود :)

00020309t.gif

1958_1963.gif
#3
نفرتاري كتب:

شكرا اخى محمود :)

فعلا اخ محمود درس جميل وتستحق الشكر

اخذ عليك فقط استخدام اللغة العامية

حاول تعود نفسك على الفصحى

وشكرا على مجهودك الطيب فى المنتدى

سلام


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#4
نفرتاري كتب:

شكرا اخى محمود :)

العفو اختى الكريمه

يارب يكون الموضوع مفيد:)

Oracle_Java كتب:

فعلا اخ محمود درس جميل وتستحق الشكر

اخذ عليك فقط استخدام اللغة العامية

حاول تعود نفسك على الفصحى

وشكرا على مجهودك الطيب فى المنتدى

سلام

ربنا يخليك يا هندسه

طيب انا عدلت المشاركه

يا ريت تشوفها كدا ولو فيه اى تعليق :)

منور :D

Software Developer
Mahmoudkelany.com


 

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…