Skip to content

Shartlarda mantiqiy operatorlar

Siz mantiqiy operatorlar yordamida shartlarni birlashtirishingiz yoki teskarisiga o'zgartirishingiz mumkin. Ular murakkabroq qarorlarni qabul qilish uchun if, else va else if operatorlari bilan birga ishlaydi.

  • && (VA / AND) - barcha shartlar rost bo'lishi kerak.
  • || (YOKI / OR) - kamida bitta shart rost bo'lishi kerak.
  • ! (EMAS / NOT) - shartni teskarisiga o'zgartiradi (truefalse, falsetrue).

VA (&&) operatori

Har ikkala shart ham rost bo'lishi kerak bo'lganda VA (&&) operatoridan foydalaning:

MISOL

a o'zgaruvchisi b dan kattaligini va c o'zgaruvchisi a dan kattaligini tekshiring:

cpp
int a = 200;
int b = 33;
int c = 500;

if (a > b && c > a) {
  cout << "Har ikkala shart ham rost";
}

YOKI (||) operatori

Kamida bitta shart rost bo'lishi yetarli bo'lganda YOKI (||) operatoridan foydalaning:

MISOL

a o'zgaruvchisi b dan kattaligini yoki a o'zgaruvchisi c dan kattaligini tekshiring:

cpp
int a = 200;
int b = 33;
int c = 500;

if (a > b || a > c) {
  cout << "Kamida bitta shart rost";
}

EMAS (!) operatori

EMAS (!) operatori shart natijasini teskarisiga o'zgartiradi:

  • Agar shart true bo'lsa, ! uni false qiladi.
  • Agar shart false bo'lsa, ! uni true qiladi.

Bu biror narsaning sodir bo'lmaganligini tekshirish kerak bo'lganda foydalidir:

MISOL

a o'zgaruvchisi b dan katta emasligini tekshiring:

cpp
int a = 33;
int b = 200;

if (!(a > b)) {
  cout << "a o'zgaruvchisi b dan katta EMAS";
}

Hayotiy misol

Haqiqiy dasturlarda mantiqiy operatorlar ko'pincha kirishni boshqarish (access control) uchun ishlatiladi. Masalan, tizimga kirish uchun maxsus talablar mavjud:

Foydalanuvchi tizimga kirgan bo'lishi kerak va u yo admin bo'lishi, yo yuqori xavfsizlik darajasiga (1 yoki 2) ega bo'lishi kerak:

MISOL

cpp
bool isLoggedIn = true;
bool isAdmin = false;
int securityLevel = 3; // 1 = eng yuqori

if (isLoggedIn && (isAdmin || securityLevel <= 2)) {
  cout << "Kirishga ruxsat berildi.";
} else {
  cout << "Kirish rad etildi.";
}

// Sinab ko'ring: securityLevel ni 1 yoki 2 ga o'zgartirsangiz - "Ruxsat berildi" chiqadi.
// Agar isAdmin o'zgaruvchisini true qilsangiz ham ruxsat beriladi.