Switch оператори



Download 105 Kb.
Sana21.02.2022
Hajmi105 Kb.
#78419
Bog'liq
switch оператори

switch оператори

  • Шарт операторининг яна бир кўриниши switch тармоқланиш оператори бўлиб, унинг синтаксиси қуйидагича:
  • switch (<ифода>)
  • {
  • case <ўзгармас ифода1> : <операторлар гуруҳи1>; break;
  • case <ўзгармас ифода2> : <операторлар гуруҳи2>; break;
  • case <ўзгармас ифодаn> : <операторлар гуруҳи n>; break;
  • default : <операторлар гуруҳи n+1>;
  • }

Бу оператор қуйидагича амал қилади:

  • Бу оператор қуйидагича амал қилади:
  • Биринчи навбатда <ифода> қиймати ҳисобланади, кейин бу қиймат case калит сўзи билан ажратилган <ўзгармас ифодаi> билан солиштирилади.
  • Агар улар устма-уст тушса, шу қатордаги ‘:’ белгисидан бошлаб, токи break калит сўзигача бўлган <операторлар гуруҳи i> бажарилади ва бошқарув тармоқланувчи оператордан кейин жойлашган операторга ўтади.
  • Агар <ифода> бирорта ҳам <ўзгармас ифодаi> билан мос келмаса, қурилманинг default қисмидаги <операторлар гуруҳиn+1> бажарилади.
  • Шуни қайд этиш керакки, структурада default калит сўзи фақат бир марта учраши мумкин

Мисол келтирамиз

  • Мисол учун, кириш оқимидан
  • “Jarayon davom etilsinmi?” сўровига фойдаланувчи томонидан жавоб олинади.
  • Агар ижобий жавоб олинса, экранга
  • “Jarayon davom etadi!”
  • хабари чоп этилади ва программа ўз ишини тармоқланувчи оператордан кейинги операторларни бажариш билан давом эттиради, акс ҳолда
  • “Jarayon tugadi!”
  • жавоби берилади ва программа ўз ишини тугатади.
  • Бунда, фойдаланувчининг ‘у’ ёки ’У’ жавоблари жараённи давом эттиришни билдиради, бошқа белгилар эса жараённи тугатишни англатади.

Мисол

  • #include
  • int main()
  • {
  • char Javob=’ ’;
  • cout<<”Jarayon davom etsinmi? (‘y’,’Y’): ”
  • cin>>Javob;
  • switch(Javob)
  • {
  • case ‘Y’:
  • case ‘y’:
  • cout<<”Jarayon davom etadi!\n”;
  • break;
  • default:
  • cout<<”Jarayon tygadi!\n”;
  • return 0;
  • }
  • ... // жараён
  • return 0;
  • }

Мисол тавсифи

  • Умуман олганда, тармоқланувчи операторда break ва default калит сўзларини ишлатиш мажбурий эмас. Лекин бу ҳолатда оператор мазмуни бузи-лиши мумкин.
  • Масалан, default қисми бўлмаган ҳолда, агар <ифода> бирорта <ўзгармас ифодаi> билан устма-уст тушмаса, оператор ҳеч қандай амал бажармасдан бошқарув тармоқланувчи оператордан кейинги операторга ўтади.
  • Агар break бўлмаса, <ифода> бирорта <ўзгармас ифода i> билан устма-уст тушган ҳолда, унга мос келувчи операторлар гуруҳини бажаради ва «тўхтамасдан» кейинги қатордаги операторлар гуруҳини ҳам бажаришда давом этади.

Мисол тавсифи

  • Масалан, юқоридаги мисолда break оператори бўлмаса ва жараённи давом эттиришни тасдиқловчи (‘Y’) жавоб бўлган тақдирда экранга
  • Jarayon davom etadi!
  • Jarayon tygadi!
  • хабарлари чиқади ва программа ўз ишини тугатади (return операторининг бажарилиши натижасида).

Мисол келтирамиз

  • Тармоқланувчи оператор санаб ўтилувчи турдаги ўзгармаслар билан биргаликда ишлатилганда самара беради.
  • Қуйидаги программада ранглар гаммасини тоифалаш масаласи ечилган.
  • #include
  • int main()
  • {
  • enum Ranglar{Qizil,Tuq_sariq,Sariq,Yashil,
  • Kuk,Zangori,Binafsha};
  • Ranglar Rang;

Мисол давоми

  • //...
  • switch (Rang)
  • {case Qizil:
  • case Tuq_sariq:
  • case Sariq:
  • cout<<”Issiq gamma tanlandi.\n”; break;
  • case Yashil:
  • case Kuk:
  • case Zangori:
  • case Binafsha:
  • cout<<”Sovuq gamma tanlandi.\n”; break;
  • default:cout<<”Kamalak bunday rangga ega emas.\n”;}
  • return 0;
  • }

Мисол тавсифи.

  • Программа бажарилишида бошқарув тармоқланувчи операторга келганда, Rang қиймати Qizil ёки Tuq_sariq ёки Sariq бўлса, “Issiq gamma tanlandi” хабари,
  • агар Rang қиймати Yashil ёки Kuk ёки Zangori ёки Binafsha бўлса, экранга
  • “Sovuq gamma tanlandi” хабари,
  • агар Rang қиймати санаб ўтилган қийматлардан фарқли бўлса, экранга “Kamalak bunday rangga ega emas” хабари чоп этилади ва программа ўз ишини тугатади.

Масала берилиши

  • Бутун турдаги ихтиёрий иккита сонлар берилган.Бу сонлар устида танланган арифметик амалга (‘+’,‘-‘,‘*’,’/’) мос хисоблаш амалга оширилсин. Агар арифметик амаллардан фаркли белги киритилса,бу хакда хабар берилсин ва амални кайта киритиш таклиф килинсин.

Программа матни.

  • #include
  • #include
  • int main()
  • {
  • int a,b;
  • float natija;
  • char amal;
  • cout<<"a=";cin>>a;
  • cout<<"b=";cin>>b;
  • nishon:

Программа давоми

  • cout<<"Arifmetik amallar:";
  • cout<<"+: c=a+b";
  • cout<<"-: c=a-b";
  • cout<<"*: c=a*b";
  • cout<<"/: c=a/b";
  • cout<<"Amalni tanlang(+,-,*,/): ";
  • cin>>amal;

Программа давоми

  • switch(amal)
  • {
  • case '+':natija=a+b;break;
  • case '-':natija=a-b;break;
  • case '*':natija=a*b;break;
  • case '/':natija=a/b;break;
  • default: cout<<"bunday amal yoq"; goto nishon;
  • }
  • cout<<”Hisoblash natijasi=”<
  • return 0;
  • }

Download 105 Kb.

Do'stlaringiz bilan baham:




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