عملگرهای منطقی

عملگرهای منطقی بر روی عبارات منطقی عمل می کنند و نتیجه آنها نیز یک مقدار بولی است. از این عملگرها اغلب برای شرطهای پیچیده استفاده می شود. همانطور که قبلا یاد گرفتید مقادیر بولی می توانند 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);

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. میثم صادقی دهنوی پاسخ دادن

    سلام
    آقای ابراهیمی به نظر میاد سطر سوم جدول عملگر منطقی OR(||) با توضیحات زیر جدول همخوانی ندارد.
    ممنون میشم بررسی کنید.

    • یونس ابراهیمی پاسخ دادن

      سلام ، خیر مشکلی ندارد . اگر یکی از طرفین این عملگر مقدار true داشته باشند نتیجه کل هم true هست