نتیجه آن عملگر
AND
منطقی & OR
منطقی | XOR
منطقی ( خارج ) ^ OR
مدار کوتاه || AND
مدار کوتاه && NOT
یکانی منطقی !
انتساب AND &=
انتساب OR |=
انتساب XOR ^=
مساوی با ==
نامساوی با !=
سه تایی if-tethen-eselse
عملگرهای بولی منطقی &، |،، ^، روی مقادیر Boolean همانطوری که روی بیت های
یک عدد صحیح رفتار می کنند ، عمل خواهند کرد . عملگر منطقی ! حالت بولی را
معکوس می کند :
!false=true t!true=false
جدول بعدی تاثیرات هر یک از عملیات منطقی را نشان می دهد :
A B A|B A&B A^B !A
False False False False False True
True False True False True False
False True True False True True
True True True True False False
در زیر برنامه ای را مشاهده می کنید که تقریبا” با مثال Bitlogic قبلی برابر
است ، اما در اینجا بجای بیت های باینری روی مقادیر منطقی بولی عمل می کند :
+ // Demonstrate the boolean logical operators.
+ class BoolLogic {
+ public static void main(String args[] ){
+ boolean a = true;
+ boolean b = false;
+ boolean c = a | b;
+ boolean d = a & b;
+ boolean e = a ^ b;
+ boolean f =( !a & b )|( a & !b);
+ boolean g = !a;
+ System.out.println(” a = ” + a);
+ System.out.println(” b = ” + b);
+ System.out.println(” a|b = ” + c);
+ System.out.println(” a&b = ” + d);
+ System.out.println(” a^b = ” + e);
+ System.out.println(“!a&b|a&!b = ” + f);
+ System.out.println(” !a = ” + g);
+ }
+ }
پس از اجرای این برنامه ، شما همان قوانین منطقی که برای بیت ها صادق بود
در مورد مقادیر boolean مشاهده می کنید . در خروجی این برنامه مشاهده می کنید
که معرفی رشته ای یک مقدار بولی درجاوا یکی از مقادیر لفظی trueیا falseا است .
a = true
b = false
a|b = true
a&b = false
a^b = true
!a&b|a&!b = true
!a = false
عملگرهای منطقی مدار کوتاه
جاوا دو عملگر بولی بسیار جالب دارد که در اکثر زبانهای دیگر برنامه نویسی
وجود ندارند . این ها روایت ثانویه عملگرهای ANDو ORو بولی هستند و بعنوان
عملگرهای منطقی مدار کوتاه معرفی شده اند. در جدول قبلی می بینید که عملگر OR
هرگاه که A معادل true باشد، منجر به true می شود، صرفنظر از اینکه B چه باشد.
بطور مشابه ، عملگر AND هرگاه A معادل false باشد منجر به false می شود. صرفنظر
از اینکه B چه باشد . اگر از اشکال ||و &&و بجای |و &و استفاده کنید، هنگامیکه
حاصل یک عبارت می تواند توسط عملوند چپ بتنهایی تعیین شود ، جاوا دیگر به
ارزیابی عملوند راست نخواهد پرداخت . این حالت بسیار سودمند است بخصوص وقتی که
عملوند سمت راست بستگی به عملوند سمت چپ و trueیا falseا بودن آن برای درست
عمل کردن داشته باشد . بعنوان مثال ، کد قطعه ای زیر به شما نشان می دهد چگونه
می توانید مزایای ارزیابی منطقی مدار کوتاه را استفاده نموده تا مطمئن شوید
که عملیات تقسیم قبل از ارزیابی آن معتبر است .
+ if(denom != 0 && num / denom > 10)
از آنجاییکه شکل مدار کوتاه AND یعنی && استفاده شده است ، هنگامیکه denom
صفر باشد ، خطر ایجاد یک استثنائ حین اجرا منتفی است . اگر همین خط از کد را
با استفاده از رایت تکی AND یعنی & بنویسیم ، هر دو عملوند باید مورد ارزیابی
قرار گیرند و هنگامیکه denom صفر باشد یک استثنائ حین اجرا بوجود می آید .
در حالتهایی که شامل منطق بولی باشند : استفاده از ارزیابیهای مدار کوتاه AND
و ORو یک روش استاندارد است که روایتهای تک کاراکتری عملگرها را منحصرا”
برای عملیات رفتار بیتی قرار می دهد . اما استثنائاتی بر این قوانین وجود
دارند . بعنوان مثال ، دستور زیر را در نظر بگیرید :
+ if(c==1 & e++ < 100 )d = 100;
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن