عملگرهای منطقی (Logical Operators)
گاهی یک شرط کافی نیست. باید شرط ها را ترکیب کنیم. اینجا «عملگرهای منطقی» وارد می شوند. آن ها مثل اتصال دهنده هستند: و، یا، و نه. بنابراین تصمیم ها دقیق تر می شوند.
عملگرهای منطقی در شرط ها
سه عملگر اصلی داریم: && یعنی «و»، || یعنی «یا»، و ! یعنی «نه». این ها کنار if، else و else if کار می کنند.
&&یعنی هر دو شرط درست باشند.||یعنی حداقل یکی درست باشد.!یعنی نتیجه شرط برعکس شود.
AND (و) با &&
وقتی هر دو شرط باید درست باشند از AND استفاده کن.
int a = 200;
int b = 33;
int c = 500;
if (a > b && c > a) {
cout << "Both conditions are true";
}
OR (یا) با ||
وقتی یکی از شرط ها کافی است از OR استفاده کن.
int a = 200;
int b = 33;
int c = 500;
if (a > b || a > c) {
cout << "At least one condition is true";
}
NOT (نه) با !
عملگر ! نتیجه شرط را برعکس می کند. درست را نادرست می کند.
int a = 33;
int b = 200;
if (!(a > b)) {
cout << "a is NOT greater than b";
}
نکته: برای شرط های ساده، ترکیب منطقی کوتاه عالی است. اما اگر پیچیده شد، از else if استفاده کن تا خواناتر شود.
نمونه کاربردی: کنترل دسترسی
باید وارد شده باشی، و سپس ادمین باشی یا سطح امنیتی بالا داشته باشی.
bool isLoggedIn = true;
bool isAdmin = false;
int securityLevel = 3;
if (isLoggedIn && (isAdmin || securityLevel <= 2)) {
cout << "Access granted.";
} else {
cout << "Access denied.";
}
// تغییر بده و نتیجه را ببین:
// securityLevel 1 یا 2 => دسترسی آزاد
// securityLevel 3 یا 4 => دسترسی رد
// اگر isAdmin = true => دسترسی آزاد
تمرین مرحله ای
- دو متغیر (Variable) بساز: score و passedExam.
- اگر score >= 90 && passedExam درست است، «A» چاپ کن.
- اگر score >= 90 || passedExam درست است، «Almost» چاپ کن.
برای پایه شرط ها، صفحه شرط ها If...Else را ببین. سپس تودر تو و اگر کوتاه را دنبال کن.
جمع بندی سریع
- AND یعنی هر دو شرط لازم است.
- OR یعنی یکی هم کافی است.
- NOT نتیجه را برعکس می کند.
- پرانتزها ابهام را کم می کنند.
- پیچیدگی زیاد را ساده سازی کن.