عملگرهای منطقی
عملگرهای منطقی بر روی عبارات منطقی عمل می کنند و نتیجه آنها نیز یک مقدار بولی است. از این عملگرها اغلب برای شرطهای پیچیده استفاده می شود. همانطور که قبلا یاد گرفتید مقادیر بولی می توانند false یا true باشند. فرض کنید که var2 و var3 دو مقدار بولی هستند.
عملگر | نام | دسته | مثال |
&& | منطقی AND | Binary | var1 = var2 && var3; |
|| | منطقی OR | Binary | var1 = var2 || var3; |
! | منطقی NOT | Unary | var1 = !var1; |
عملگر منطقی AND(&&)
اگر مقادیر دو طرف عملگر AND ،true باشند عملگر AND مقدار true را بر می گرداند. در غیر اینصورت اگر یکی از مقادیر یا هر دوی آنها false باشند مقدار false را بر می گرداند. در زیر جدول درستی عملگر AND نشان داده شده است :
X | Y | X && Y |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
برای درک بهتر تاثیر عملگر AND یاد آوری می کنم که این عملگر فقط در صورتی مقدار true را نشان می دهد که هر دو عملوند مقدارشان true باشد.در غیر اینصورت نتیجه تمام ترکیبهای بعدی false خواهد شد. استفاده از عملگر AND مانند استفاده از عملگرهای مقایسه ای است. به عنوان مثال نتیجه عبارت زیر درست (true) است اگر سن (age) بزرگتر از 18 و salary کوچکتر از 1000 باشد.
result = (age > 18) && (salary < 1000);
عملگر AND زمانی کارامد است که ما با محدود خاصی از اعداد سرو کار داریم. مثلا عبارت 10 <= x <= 100 بدین معنی است که x می تواند مقداری شامل اعداد 10 تا 100 را بگیرد. حال برای انتخاب اعداد خارج از این محدوده می توان از عملگر منطقی AND به صورت زیر استفاده کرد.
inRange = (number <= 10) && (number >= 100);
عملگر منطقی OR(||)
اگر یکی یا هر دو مقدار دو طرف عملگر OR ،درست (true) باشد،عملگر OR مقدار true را بر می گرداند. جدول درستی عملگر OR در زیر نشان داده شده است :
X | Y | X || Y |
true | true | true |
true | false | true |
false | true | true |
false | false | false |
در جدول بالا مشاهده می کنید که عملگر OR در صورتی مقدار false را بر میگرداند که مقادیر دو طرف آن false باشند. کد زیر را در نظر بگیرید.نتیجه این کد در صورتی درست (true) است که رتبه نهایی دانش آموز (finalGrade) بزرگتر از 75 یا یا نمره نهایی امتحان آن 100 باشد.
isPassed = (finalGrade >= 75) || (finalExam == 100);
عملگر منطقی NOT(!)
برخلاف دو اپراتور OR و AND عملگر منطقی NOT یک عملگر یگانی است و فقط به یک عملوند نیاز دارد. این عملگر یک مقدار یا اصطلاح بولی را نفی می کند. مثلا اگر عبارت یا مقدار true باشد آنرا false و اگر false باشد آنرا true می کند. جدول زیر عملکرد اپراتور NOT را نشان می دهد :
X | !X |
true | false |
false | true |
نتیجه کد زیر در صورتی درست است که age (سن) بزرگتر یا مساوی 18 نباشد.
isMinor = !(age >= 18);
با سلام
من نیز ایتدا همین فکر را می کردم
نتیجه مقایسه در سمت چپ هست و ما اشتباها سمت راست را دیدیم
x y x||y
در حالیکه
x||y y x
سلام ضمن تشکر
بنظر من نیز باید true باشد
سلام
آقای ابراهیمی به نظر میاد سطر سوم جدول عملگر منطقی OR(||) با توضیحات زیر جدول همخوانی ندارد.
ممنون میشم بررسی کنید.
سلام ، خیر مشکلی ندارد . اگر یکی از طرفین این عملگر مقدار true داشته باشند نتیجه کل هم true هست