experssion 1? experssion2 :experssion3
در اینجا experssion1 می تواند هر عبارتی باشد که با یک مقدار بولی سنجیده می شود . اگر experssion1 صحیح true باشد ، آنگاه experssion2 سنجیده می شود در غیر اینصورت experssion3 ارزیابی خواهد شد . نتیجه عملیات ? همان عبارت ارزیابی شده است . هر دو عبارت experssion2و experssion3و باید از یک نوع باشند که البته void نمی تواند باشد . در اینجا مثالی برای استفاده از عملگر ? مشاهده می کنید :
+ ratio = denom == 0 ? 0 : num / denom;
هنگامیکه جاوا این عبارت انتساب را ارزیابی می کند ، ابتدا به عبارتی که
سمت چپ علامت سئوال قرار دارد ، نگاه می کند. اگر denom مساوی صفر باشد ، آنگاه
عبارت بین علامت سئوال و علامت (colon) ارزیابی شده و بعنوان مقدار کل عبارت ?
استفاده می شود . اگر denom مساوی صفر نباشد ، آنگاه عبارت بعد از (colon)
ارزیابی شده و برای مقدار کل عبارت ? استفاده می شود . نتیجه تولید شده توسط
عملگر ? سپس به ratio نسبت داده می شود .
در زیر برنامه ای مشاهده می کنید که عملگر ? را نشان می دهد . این برنامه از
عملگر فوق برای نگهداری مقدار مطلق یک متغیر استفاده می کند .
+ // Demonstrate ?.
+ class Ternary {
+ public static void main(String args[] ){
+ int i/ k;
+
+ i = 10;
+ k = i < 0 ?- i : i; // get absolute value of i
+ System.out.print(“Absolute value of “);
+ System.out.println(i + ” is ” + k);
+ }
+ }
خروجی این برنامه بصورت زیر می باشد :
Absolute value of 10 is 10
Absolute value of- 10 is 10
حق تقدم عملگر
جدول زیر ترتیب حق تقدم عملگرهای جاوا را از بالاترین اولویت تا پایین ترین
نشان می دهد . دقت کنید که در سطر اول اقلامی وجود دارد که معمولا” بعنوان عملگر
درباره آنها فکر نمی کنید : پرانتزها ، کروشه ها و عملگر نقطه .
Highest
)( [].
++ — ~ !
* / %
+-
>> >>> <<
> >= < <=
== !=
&
^
|
&&
||
?:
= op=
Lowest
از پرانتزها برای تغییر حق تقدم یک عملیات استفاده می شود . قبلا” خوانده اید
که کروشه های دوتایی نمایه سازی آرایه ها را فراهم می سازند
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن