Сайфиев ж. Ф. С++ тилига кириш услубий қўлланма



Download 3,43 Mb.
bet52/79
Sana09.07.2022
Hajmi3,43 Mb.
#767124
1   ...   48   49   50   51   52   53   54   55   ...   79
Bog'liq
C dan uslubiy qulanma

switch оператори


Олдинги мавзуларда биз if ва if/else операторлари билан танишган эдик. Лекин айрим масалаларни ечишда if оператори ичида кўп сондаги if операторларини қўллашга тўғри келади. Бу эса дастурни ёзишни ҳам, уни тушинишни ҳам мураккаблаштириб юборади. Бундай муаммони ечиш учун С++ тилида switch оператори қўлланилади. Бу операторнинг if операторидан асосий фарқи шуки, унда бир йўла бир нечта шарт текширилади. Натижада дастурни тармоқланиши нисбатан самаралироқ бўлади. switch операторининг синтаксиси қуйидагичадир.
switch(ифода)
{
case Биринчи киймат: оператор;
break;

case Иккинчи киймат: оператор;


break;
.....
case N нчи киймат: оператор;
break;
defаult: оператор;
}
switch операторидан кейинги қавс ичида тилнинг конструкцияси нуқтаи–назаридан тўғри бўлган ихтиёрий ифодани ишлатиш мумкин. Оператор идентификатори ўрнида ҳам ихтиёрий оператор ёки ифода, ҳамда оператор ва ифодаларнинг кетма-кетлигини ишлатиш мумкин. Лекин бу ерда мантиқий операциялар ёки таққослаш ифодаларини ишлатиш мумкин эмас.

switch операторининг қўлланилиши.


switch операторининг қўлланилиш синтаксиси қуйидагича:
switch(ифода)
{
сase 1-нчи қиймат: ифода;
сase 2-нчи қиймат: ифода;

сase n-нчи қиймат: ифода;
default : ифода;
}
switch оператори орқали дастурнинг тармоқланиши бир неча мумкин бўлган қийматларни қайтарувчи ифоданинг натижаси асосида ташкил этилади. switch операторидаги қавс ичида берилган ифоданинг қайтарган қиймати case операторидан кейинда кўрсатилган қиймат билан солиштирилади. Ифоданинг қиймати билан case операторидан кейинги қиймат мос келса танланган case операторидан кейинги барча сатрлар бажарилади. Бунда амалларни бажарилиши break операторигача давом этади.
Агарда case операторлари қийматидан бирортаси ҳам қайтарилган қийматга мос келмаса default операторидан кейинги дастур сатрлари бажарилади. Агарда бу оператор мавжуд бўлмаса бошқарув switch блоки танасидан чиқади ва кейинги дастур сатрларига берилади.
1-мисол.
switch(choice)
{
case 0:
cout<< “zero!”<< endl;
break;
case 1:
cout<< “оne!”<< endl;
breаk;
case 2:
cout<< “two! <break;
default:
cout<< “default!<}

2-мисол



switch (choice)
{
сase 0:
case 1:
case 2:
cout< “Less than 3!”<< endl;
break;
case 3:
cout<< Equals 3!” << endl;
break;
default:
cout<< Greater than3 ! ” << endl;}
Оператор ёки ифодалардан кейин break оператори қўлланилмаса жорий case операторидан кейинги case блокидаги барча ифодалар бажарилади. Кўп ҳолларда бундай ситуацияда хатолик рўй беради. Шунинг учун, break операторини тушириб қолдирсангиз бу амални тавсифловчи мос изоҳни(коментарийни) ёзишни унутманг.
switch операторининг қўлланилишига мисол 7.16.-листингда келтирилган.
7.16. – листинг. switch операторининг қўлланилиши
include
int main()
{
unsigned short int number;
cout<< “Enter a number between 1 and 5:”
сin>> number;
switch (number)
{
case 0: cout << “Small”;
break;
case 5: cout<< “Good job! \n”;
case 4: cout << “Nice Pick!\n” ;
case 3: cout<< “Excellent! \n”;
case 2: cout << “Master full! \n”
case 1: cout << Incredible!\n”;
break;
default: cout << “Big! \n”;
break;
}
cout<< “\n\n”;
return 0;
}


HАТИЖА:
Enter a number between 1 and 5: 3
Excellent!
Masterful!
Ineredible!
Enter a number between 1 and 5: 8
Big!
ТАҲЛИЛ
Дастур олдин сон киритишни сўрайди. Кейин эса киритилган сон switch оператори орқали текширилади. Агарда 0 киритилган бўлса унга мувофиқ равишда экранга 9 – сатрда ёзилган kichik son хабари чиқарилади. Ва ундан кейин ёзилган break оператори switch конструкциясини бажарилишини якунлайди. Агарда 5 сони киритилса бошқарув 11 – сатрга берилади ва унга мувофиқ хабар чиқарилади. Ундан кейинги токи break сўзигача барча сатрлар кетма – кет бажарилади.
Агарда дастурга 5 дан катта сон киритилса 17 – сатрдаги default бажарилади, яъни экранга Big хабари чиқарилади.

Download 3,43 Mb.

Do'stlaringiz bilan baham:
1   ...   48   49   50   51   52   53   54   55   ...   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish