Mantiqiy solishtirish operatorlari. C++ bir necha solishtirish operatorlariga ega.
5.8-jadval. Mantiqiy solishtirish operatorlari . Algebraik ifoda
C++ dagi
operator
C++ dagi ifoda
Algebraik ma`nosi
tenglik guruhi
==
x==y
x tengdir y ga
teng emas
!=
x!=y
x teng emas y ga
solishtirish guruhi
>
<
x>y
xx katta y dan
x kichkina y dan
katta-teng
>=
x>=y
x katta yoki teng y ga
kichik-teng
<=
x<=y
x kichik yoki teng y ga
[==], [!=], [>=] va [<=] operatorlarni yozganda oraga bo`sh joy qo`yib ketish
sintaksis xatodir. Yani kompilyator dasturdagi xatoni ko`rsatib beradi va uni
tuzatilishini talab qiladi. Ushbu ikki belgili operatorlarning belgilarining joyini
almashtirish, masalan, [<=] ni [=<] qilib yozish ko`p hollarda sintaksis xatolarga
olib keladi. Gohida esa [!=] ni [=!] deb yozganda sintaksis xato vujudga keladi, bu
mantiqiy xato bo`ladi. Mantiqiy xatolarni kompilyator topa olmaydi. Lekin ular
programma ishlash matnini o`zgartirib yuboradi. Bu kabi xatolarni topish esa
ancha mashaqqatli ishdir (! operatori mantiqiy inkordir). Yana boshqa xatolardan
biri tenglik operatori (==) va tenglashtirish, qiymat berish operatorlarini (=) bir-biri
bilan almashtirib qo`yishdir. Bu ham juda ayanchli oqibatlarga olib keladi, chunki
ushbu xato aksariyat hollarda mantiq xatolariga olib keladi.
Yuqoridagi solishtirish operatorlarini ishlatadigan bir misolni ko`raylik.
3-listing.
Output:
# include int main() {
int a, b;
Ikki sonni kiriting:
10 5
10 katta yoki teng
225
cout << "Ikki son kiriting: " << endl;
cin >> a >> b; //Ikki son olindi.
if (a == b) cout << a << " teng " << b << " ga" << endl;
if (a < b) cout << a << " kichik " << b << " dan" <<
endl;
if (a >= b) cout << a << " katta yoki teng " << b << " ga"
<< endl;
if (a != b) cout << a << " teng emas " << b << " ga" <<
endl;
return (0); }
5 ga
10 teng emas 5 ga
Bu yerda bizga yangi bu
C++ ning if (agar) strukturasidir. if ifodasi ma`lum
bir shartning to`g`ri (true) yoki noto`g`ri (false)bo`lishiga qarab, dasturning u yoki
bu blokini bajarishga imkon beradi. Agar shart to`g`ri bo`lsa, if dan so`ng keluvchi
amal bajariladi. Agar shart bajarilmasa, u holda if tanasidagi ifoda bajarilmay, if
dan so`ng keluvchi ifodalar ijrosi davom ettiriladi. Bu strukturaning ko`rinishi
quyidagichadir:
if (shart) ifoda;
Shart qismi qavs ichida bo`lishi majburiydir. Eng oxirida keluvchi nuqta-
vergul (;) shart qismidan keyin qo`yilsa ( if (shart) ; ifoda; ) mantiq xatosi vujudga
keladi. Chunki bunda if tanasi bo`sh qoladi. Ifoda qismi esa shartning to`g`ri-
noto`g`ri bo`lishiga qaramay ijro qilaveradi.
C++ da bitta ifodani qo`yish mumkin bo`lgan joyga ifodalar guruhini ham
qo`yish mumkin. Bu guruhni {} qavslar ichida yozish kerak. if da bu bunday
bo`ladi:
if (shart) {
ifoda1;
ifoda2;
...
ifodaN; }
226
Agar shart to`g`ri javobni bersa, ifodalar guruhi bajariladi, aksi taqdirda
blokni yopuvchi qavslardan keyingi ifodalarda dastur ijrosi davom ettiriladi.