السلام عليكم ورحمه الله وبركاته
نريد ان نتعرف اليوم على بعض التقنيات الجديده على بعض الناس فى الـمتغيرات المعطاه لأى داله
نريد ان نقوم بعمل داله تستقبل اى عدد من المتغيرات وتقوم انت بعد ذلك بالتعامل مع هذه المتغيرات
مثلا
نريد نعمل داله تقوم باسترجاع اكبر قيمه موجوده من بين مجموعه من القيم
انت لا تعلم كم قيمه ستدخلها
وانت تريد ان تقوم بعمل داله تستقبل منك مره رقمين وتقوم بارجاع اكبر رقم فيهما
ومره اخرى تقوم باستقبال 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));
}
}بالتوفيق :)

