Skip to content

Qisqa shart operatori (Ternary Operator)

C++ tilida if...else operatorining qisqacha ko'rinishi ham mavjud bo'lib, u uchlik operatori (ternary operator) deb ataladi (chunki u uchta operanddan foydalanadi).

Uchlik operatori shartga asoslanib qiymat qaytaradi: agar shart rost (true) bo'lsa, u birinchi qiymatni qaytaradi; aks holda, ikkinchi qiymatni qaytaradi.

U bir necha qatorli kodni bitta qatorga almashtirish uchun foydali va ko'pincha oddiy if...else operatorlari o'rniga ishlatiladi:

SINTAKSIS
cpp
o'zgaruvchi = (shart) ? ifodaRost : ifodaYolg'on;

Odatdagi yozuv o'rniga:

MISOL

cpp
int time = 20;
if (time < 18) {
  cout << "Xayrli kun.";
} else {
  cout << "Xayrli kech.";
}

Siz shunchaki quyidagicha yozishingiz mumkin:

MISOL

cpp
int time = 20;
string natija = (time < 18) ? "Xayrli kun." : "Xayrli kech.";
cout << natija;

Shuningdek, uchlik operatoridan to'g'ridan-to'g'ri cout ichida ham foydalanish mumkin:

MISOL

cpp
int time = 20;
cout << ((time < 18) ? "Xayrli kun." : "Xayrli kech.");

MASLAHAT

Uchlik operatorini faqat qisqa va oddiy shartlar uchun ishlating. Uzunroq yoki murakkab mantiq uchun odatdagi if...else operatorini ishlatish kodni o'qishni osonlashtiradi.


Ichma-ich joylashgan uchlik operatorlari

Siz ikkitadan ko'p natijalarni boshqarish uchun uchlik operatorlarini bir-birining ichiga joylashtirishingiz mumkin, ammo bu kodni o'qishni qiyinlashtirishi mumkin:

MISOL

cpp
int time = 22;
string xabar = (time < 12) ? "Xayrli tong."
  : (time < 18) ? "Xayrli kun."
  : "Xayrli kech.";
cout << xabar;

ESLATMA

Ichma-ich joylashgan uchlik operatorlari ishlasa-da, aniqlik uchun odatdagi if...else if...else operatoridan foydalanish tavsiya etiladi.