( تعداد نمایش : 1662 )

عملگر ? در جاوا

جاوا شامل یک عملگر سه تایی ویژه است که می تواند جایگزین انواع مشخصی از دستورات if-then-else باشد. این عملگر علامت ? است و نحوه کار آن در جاوا مشابه با Cو C++و است . ابتدا کمی گیج کننده است ، اما می توان از ? براحتی و با کارایی استفاده نمود شکل کلی این عملگر بصورت زیر است :

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

از پرانتزها برای تغییر حق تقدم یک عملیات استفاده می شود . قبلا” خوانده اید
که کروشه های دوتایی نمایه سازی آرایه ها را فراهم می سازند

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن