Shartli ifodalar
Shartli ifodalar qandaydir shartni ifodalaydi va bool qiymatini qaytaradi, ya'ni rost (shart rost bo'lsa) yoki noto'g'ri (agar shart noto'g'ri bo'lsa). Shartli ifodalar taqqoslash va mantiqiy amallarni o'z ichiga oladi.
Taqqoslash operatsiyalari
Taqqoslash operatsiyalari ikkita operandni taqqoslaydi va mantiqiy qiymatni qaytaradi - agar ifoda to'g'ri bo'lsa, true va ifoda noto'g'ri bo'lsa, noto'g'ri.
==
Tenglik uchun ikkita operandni taqqoslaydi va rost (operandlar teng bo'lsa) va noto'g'ri (operandlar teng bo'lmasa) qaytaradi.
1
2
3
4
|
int a = 10;
int b = 4;
bool c = a == b; // false
bool d = a == 10; // true
|
=!
ikkita operandni solishtiradi va agar operandlar teng bo'lmasa rost va operandlar teng bo'lsa yolg'onni qaytaradi
1
2
3
4
|
int a = 10;
int b = 4;
bool c = a != b; // true
bool d = a != 10; // false
|
<(kamroq)
Agar birinchi operand ikkinchisidan kichik bo'lsa, true qiymatini qaytaradi, aks holda noto'g'ri qaytaradi
1
2
3
|
int a = 10;
int b = 4;
bool c = a < b; // false
|
> (kattaroq)
Agar birinchi operand ikkinchisidan katta bo'lsa, true qiymatini qaytaradi, aks holda noto'g'ri qaytaradi
1
2
3
|
int a = 10;
int b = 4;
bool c = a > b; // true
|
> = (katta yoki teng)
Agar birinchi operand ikkinchisidan katta yoki unga teng bo'lsa, true qiymatini qaytaradi, aks holda noto'g'ri qaytaradi
1
2
3
|
bool c = 10 >= 10; // true
bool b = 10 >= 4; // true
bool d = 10 >= 20; // false
|
<= (kamroq yoki teng)
Agar birinchi operand ikkinchisidan kichik yoki teng bo'lsa, true qiymatini qaytaradi, aks holda noto'g'ri qaytaradi
1
2
3
|
bool c = 10 <= 10; // true
bool b = 10 <= 4; // false
bool d = 10 <= 20; // true
|
Mantiqiy operatsiyalar
Bundan tashqari, Dartda mantiqiy operatsiyalar mavjud bo'lib, ular ham shartni ifodalaydi va rost yoki noto'g'ri qaytaradi va odatda bir nechta taqqoslash operatsiyalarini birlashtiradi. Mantiqiy operatsiyalarga quyidagilar kiradi:
|
c = a | b; (a yoki b (yoki ikkala a va b) rost bo'lsa c rost, aks holda c noto'g'ri bo'ladi)
&
c = a & b; (a va b rost bo'lsa c to'g'ri, aks holda c noto'g'ri bo'ladi)
!
c = b; (agar b noto'g'ri bo'lsa c rost, aks holda c noto'g'ri)
^
c = a ^ b; (a yoki b (lekin ikkalasi emas) to'g'ri bo'lsa c rost, aks holda c noto'g'ri bo'ladi)
||
c = a || b; (a yoki b (yoki ikkala a va b) rost bo'lsa c rost, aks holda c noto'g'ri bo'ladi)
&&
c = a && b; (a va b rost bo'lsa c rost, aks holda c noto'g'ri bo'ladi)
Bu erda bizda ikki juft operatsiya bor | va || (shuningdek, & va &&) o'xshash narsalarni qiladi, lekin ular bir xil emas.
ifoda c = a | b; avval a va b qiymatlarini hisoblab chiqadi va ular asosida natijani chiqaradi.
c = a || b ifodasida; birinchidan, a qiymati hisoblab chiqiladi va agar u to'g'ri bo'lsa, u holda b qiymatini hisoblash mantiqiy emas, chunki har qanday holatda, c allaqachon haqiqatga teng bo'ladi. B faqat a noto'g'ri bo'lsa baholanadi
Xuddi shu narsa & / && operatsiyalari juftligiga ham tegishli. c = a & b ifodasida; a va b ham hisoblab chiqiladi.
c = a && b ifodasida; a ning qiymati birinchi bo'lib hisoblanadi va agar u noto'g'ri bo'lsa, u holda b qiymatini hisoblash endi mantiqiy emas, chunki baribir c qiymati noto'g'ri. B faqat a rost bo'lsa hisoblab chiqiladi
Shunday qilib, operatsiyalar || va && hisoblash uchun qulayroqdir, bu sizga ifoda qiymatini baholash uchun ketadigan vaqtni qisqartirish va shu bilan ishlashni yaxshilash imkonini beradi. Va operatsiyalar | va & raqamlar ustida bitli amallarni bajarish uchun ko'proq mos keladi.
Misollar:
1
2
3
4
5
6
|
bool a1 = (5 > 6) || (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается true
bool a2 = (5 > 6) || (4 > 6); // 5 > 6 - false, 4 > 6 - false, поэтому возвращается false
bool a3 = (5 > 6) && (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается false
bool a4 = (50 > 6) && (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается true
bool a5 = (5 > 6) ^ (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается true
bool a6 = (50 > 6) ^ (4 / 2 < 3); // 50 > 6 - true, 4/2 < 3 - true, поэтому возвращается false
|
|