C++ da funksiya va toifasida strukturaviy ma’lumotlarini soha bo’yicha ishlatgan holda dastur tuzish
Download 303.58 Kb.
|
C da funksiya va protseduralar-fayllar.org
оператори. Мультишахобланишни ташкил этиш оператори бўлиб, кўп ўтишлилик оператори - switch оператори хизмат қилади. Унинг формати
} Бу операторда учта хизматчи сўз switch, case ва default лар ишлатилган. Биринчиси, яъни switch хизматчи сўзи шахсан кўп ўтишлилик оператори ҳисобланади. Иккинчи сўз case бу ерда қандайдир маънода метка ўрнида ишлатилади. Бу константалар бутун ѐки символли ва уларнинг ҳар бири ҳар хил бўлиши керак. Default хизматчи сўз алоҳида меткани ифода этади. Қуйидаги 1-расмдаги операторлар бажарилиши switch дан кейинги ифодалар ҳисобланади ва уларни қийматлари кетма-кет равишда case даги константалар билан солиштирилади. Биринчи устма-уст тушишда бу метка билан белгиланган меткадан кейинги операторлар бажарилади. Агар бажарилган операторлар орасида қандайдир ўтиш операторлари (яъни улар орасида goto, return, exit( ), break лардан бирортаси бўлмаса) учрамаса, у ҳолда кейинги вариантлардаги барча операторлар бажарилиши ўтиш оператори учрамагунча ѐки switch тугамагунча давом этади. Кўп ўтишлилик (switch) а) да алтернатив танлаш б) да келтирилган а: - агар ифода МК га тенг бўлса, у ҳолда қуйидаги операторлари бажарилади, б - агар ифода LK га тенг бўлса, у ҳолда фақат Sk оператори бажарилади. Sk , Sk 1,...,Sn , S default дан кейинги операторлар бажарилади, қачонки switch дан кейинги қавс ичидаги ифоданинг қиймати case дан кейинги константаларнинг ҳеч бирини қийматлари билан устма-уст тушмаса. Умуман олганда кўп ўтишлилик операторида default меткаси қатнашмаслиги ҳам мумкин. Бу ҳолда switch дан кейинги қавс ичидаги ифоданинг қийматлари константаларнинг (case дан кейинги) қийматлари билан устма-уст тушмайди ва натижада switch оператори ҳеч қандай амални бажармайди. default билан белгиланган операторлар switch операторининг охирига тушиши шарт эмас. Аниқлаштириб шуни таъкидлаймизки, default ва “case константа” одатдаги маъно бўйича метка эмас. Масалан, уларга goto ни ишлатиб бўлмайди. 1-расмда кўп ўтишлилик схемаси (1-а расм) ва алтернатив танлаш ѐки селектор операторлари (1-б расмда) келтирилган. Кейинги, яъни селектор Си тилида йўқ. 2-расмда алтернатив танлаш схемаси кўп ўтишлилик ва S1,S2,…,Sn қўшимча операторлар ѐрдамида реализация қилинган. Кўп ўтишлилик ишини иллюстрация қилиш учун ўнлик рақамни ўқиб, уни экранга чиқарадиган дастурни кўриб чиқиш. #include void main( ) { int i; while(1) { printf("\n O’nlik raqamni kiriting: "); scanf("%d",Јi); printf("\t\t"); switch( i ) { case 1: printf("%d –bir \n",i); break; case 2: printf ("%d – ikki \i)",i) ; break; case 3: printf("%d - uch \n",i); break; case 4: printf("%d – to’rt \n",i); break; . case 5: printf("%d - besh \n",i); break; case 6: printf("%d - olti \n",i); break; case 7: printf("%d - yetti \n",i); break; case 8: printf("%d - sakkiz \n",i); break; case 9: printf("%d – to’qqiz \n",i); break; case 0: printf("%d - nol \n",i); break; default: printf("%d – bu raqam emas! \n",i); return; } /* Ko’p o’tishlilik tugadi */ } /* Sikl tamom */ } Дастур бажарилиши натижаларига мисол. O’nlik raqamni kiriting : 3 3 – uch O’nlik raqamni kiriting : 8 8 – sakkiz O’nlik raqamni kiriting : -7 -7 – bu raqam emas. Бу дастур ўз ишини тугатади, қачонки рақамдан фарқли бўлган символ киритилса. Бу ерда дастурни тугалланишини return оператори таэминлайди, яъни у main() функциясида чиқиш бошқаришни операциясига узатади. Кўп ўтишлилик операторлар набори билан бир қаторда break оператори алтернатив танлашни мазкур дастурда бажаради. Агар бу ердаги барча break лар олиб ташланса, у ҳолда 1-а расмдаги ҳол бўлади. Таъкидлаш лозимки, switch ичида бир нечта “case” меткасига 1 та оператор ҳам мос келиши мумкин. http://fayllar.org Download 303.58 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling