عملگرهاي
منطقي بولي Boolean
عملگرهاي
منطقي بولي كه در زير نشان داده ايم فقط روي عملوندهاي بولي عمل مي كنند . كليه
عملگرهاي منطقي باينري دو مقدار boolean راتركيب
مي كنند تا يك مقدار منتج boolean
ايجاد نمايند .
نتيجه آن عملگر
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;
بازگشت به فهرست
بازگشت به صفحه نخست