الفكرة ببساطة
Ternary Operator طريقة مختصرة لاختيار قيمة من قيمتين حسب شرط. اسمه الآخر Conditional Operator، ورموزه الأساسية ? و:.
Ternary Operator
Ternary Operator طريقة مختصرة لاختيار قيمة من قيمتين حسب شرط. اسمه الآخر Conditional Operator، ورموزه الأساسية ? و:.
اقرأ condition ? a : b هكذا: إذا كان الشرط true اختر a، وإذا كان false اختر b. ثم يمكن تخزين القيمة المختارة في متغير.
في (n1 > n2) ? n1 : n2 نسأل أولًا: هل الأول أكبر من الثاني؟ إذا نعم، نأخذ n1؛ وإذا لا، نأخذ n2. عند 12 و20 نختار 20.
يمكن كتابة الاختيار نفسه باستخدام if-else. في المثال ستشوف الطريقتين؛ كلتاهما تختار القيمة الأكبر. المقصود اختصار اختيار قيمة، وليس استبدال أي كود طويل تلقائيًا.
في 22 % 2 == 0 ? true : false الشرط صحيح، لذلك القيمة المختارة هي true. القيمة بعد ? تخص تحقق الشرط، والتي بعد : تخص عدم تحققه.
int n1 = 12;
int n2 = 20;
// Equivalent if-else form
int maxWithIf;
if (n1 > n2) {
maxWithIf = n1;
} else {
maxWithIf = n2;
}
// Ternary form chooses the same value
int max = (n1 > n2) ? n1 : n2;
boolean test = 22 % 2 == 0 ? true : false;
System.out.println(max);
System.out.println("22 is even: " + test);n1 و20 في n2.if-else، الشرط 12 > 20 يساوي false، لذلك يأخذ maxWithIf قيمة n2، وهي 20.Ternary، الشرط نفسه false، فنختار ما بعد :، فتكون max = 20 أيضًا.true؛ لذلك تُطبع 20 ثم 22 is even: true.لا تعكس القيمتين: ما بعد ? يُختار عند true، وما بعد : يُختار عند false. افصل في ذهنك بين نتيجة الشرط والقيمة التي سيختارها التعبير.
غيّر n1 وn2 لتختار القيمة الأكبر. بدّل مكان العددين، ثم جرّب قيمتين متساويتين.
محاكاة لهذا المثال المحدد، وليست تشغيلًا لكود Java عشوائي.