if ni qo'llaganimizda ifoda faqat shart haqiqat bo'lgandagina bajariladi,
aksholda tashlanib o'tiladi. if/else yordamida esa shart bajarilmaganda(false natija
chiqqanda) else orqali boshqa bir yo'ldan borishni belgilashmumkin. Misolimizni
takomillashtirsak. Bola 7 yosh yoki undan katta bo'lsa maktabga, 7 dan kichkina
Yuqorida if ga tegishli bo'lgan blok bitta ifodadan (maktab()) iborat. Shu
sababli nuqta-vergul qo'yilishi shart. Buni aytib o'tishimizning sababi, masal
Pascalda hech narsa qo'yilmasligi shart. C++ da bitta ifosa turgan joyga ifodalar
23
Strukrurali dasturlashning yana bir harakterli joyi shundaki tabulyatsiya, bo'sh joy
va yangi satrlar ko'p qo'llaniladi. Bu programmani o'qishni osonlashtirish uchun
qilinadi. C++ uchun bo'sh joyning hech ahamiyati yo'q, lekin dasturni tahrir
qilayatgan odamga buyruqlar guruhini, bloklarni tabulyatsiya yordamida ajratib
bersak, unga katta yordam bo'ladi. Yuqoridagini quyidagicha ham yozish mumkin:
if(yosh>=7){ console.writeline ("Maktabga!\n");maktab()}else{ console.writeline
("Bog'chaga!\n");bogcha()};
Biroq buni o'qish ancha murakkab ishdir. C++ da if/else strukturasiga
o'hshash ?: shart operatori (conditional operator) ham bordir. Bu C++ ning bittagina
uchta argument oluvchi operatori. Uch operand va shart operatori shart ifodasini
beradi. Birinchi operand orqali shartimizni beramiz. Ikkinchi argument shart true
(haqiqat) bo'lib chiqqandagi butun shart ifodasining javob qiymatidir. Uchinchi
operand shartimiz bajarilmay (false) qolgandagi butun shart ifodasining qiymatidir.
Masalan:
bool bayroq;
int yosh = 10;
bayroq = ( yosh >= 7 ? true : false );
Agar yosh 7 ga teng yoki katta bo'lsa, bool tipidagi o'zgaruvchimiz true
qiymatini oladi, aks taqdirda false bo'ladi. Shart operatori qavslar ichida bo'lishi
zarur, chunki uning kuchi katta emas. Javob qiymatlar bajariladigan
funksiyalar ham bo'lishi mumkin:
yosh >= 7 ? maktab() : bogcha();
if/else strukturalarini bir-birining ichida yozishimiz mumkin. Bunda ular bir-biriga
ulanib ketadi.
Dostları ilə paylaş: