«C# dasturlash tili» O’quv qo’llanma



Download 0,57 Mb.
bet37/76
Sana20.07.2022
Hajmi0,57 Mb.
#828017
1   ...   33   34   35   36   37   38   39   40   ...   76
Bog'liq
C # ma\'lumotnoma

Switch instruksiyasi

Ikkinchi tanlash instruksiyasi bulib xisoblanadi. Switch isntruksiyasi kup yunaltirilgan tarmoklanishni ta’minlaydi. U kupchilik alternativadan bittasini tanlashga yordam beradi. Kupyunaltirilgan testdan utkazishda ustma-ust if- instrksiyasida xam bajarsa xam bular edi, lekin switch instruksiyasi yordaminda kupchilik xolatlarda instruksiyasi effektiv yechimi buladi. Bu esa kuyidagicha ishlaydi. Ifoda ma’nosi ketma-ket konstantalar bilan solishtiriladi. Agarda, solishtirishda shartlardan bittasi tugri kelsa shu shart bilan boglik ketma-kteligi bajariladi. Switch instruksiyasining umumiy yozilish formati kuyidagicha:


Shwitch (ifoda) {


Case konstanta ! :
instruksiya ketma - ketligi
break ; case konstanta 2:
instruksiya ketma - ketligi
break ;
case konstanta 3: instruksiya
ketma - ketligi break;
default:
instruksiya ketma - ketligi break;
}
Switch isntruksiyasining ifoda elementi butunsonli tipda bulishi kerak ( masalan, Char, byte, short, yoki int) yoki string ( keyinda bu tugrisida so’z yuritamiz). Suzuvchi nukta Bilan ifodalar foydalanilmaydi. Kupincha Switch ifodasi boshkarish uchun uzgaruvchi foydaliniladi, case – konstantalar literlar bulishi shart, va ularding tiplari berilgan ifodalarning tiplari bilan tugri kelishi kerak. Va shu inobatda ikkita case- konstantalari bir Switch-isntruksiyasi bir xil ma’noga ega bulmaydi.
Default-tarmoklari instruksiyasi ketma- ket bajariladi, agarda berilgan case-konstantalarining bittayam natiyjalari switch-ifodasining ma’nolari tugri kelmasa.
Default -tarmogi shart emas. Agarda, ifodaning natiyjalari tugri kelmasa case-konstantalari ma’nosi bilan unda xech bir amal bajarilmaydi. Agarda, shunaka ma’nosi tugri kelsa, unda case –instruksiyasi tarmokiga mos instruksiyasi bajariladi, break- instruksiya uchratilmagancha.
Switch isntruksiyasi foydalanilishi kuyidagi dasturda kursatiladi.
G’G’ Switch isntruksiyasi foydalanilishi kursatamiz.
Using System;
class ShwitchDemo { public static void
Main( ) { int i;

for ( iq0 ; i<10 iQ Q )


switch ( i ) { case 0:
Console. WriteLine (( “ i “ nulga teng “ );
Break;
Case 1:
Console. WriteLine (( “ i “ nulga teng “ );
Case 2 :
Console. WriteLine (( “ i “ ikkiga teng “ );

Case 3:


Console. WriteLine (( “ i “ uchga teng “ );

Case 4:


Console. WriteLine (( “ i “ turtga teng “ );
Break;
default:
Console. WriteLine (( “ i “ teng yoki beshtan ulkan “ );

Dasturning natiyjasi kuyidagi kurinishda buladi.


Console. WriteLine (( “ i “ nulga teng “ );

Dasturning natiyjasi kuyidagi kurinishda buladi.


i nulga teng.
i ikkiga teng.
i uchga teng.
i turtga teng.
i teng yoki beshtan ulkan.
i teng yoki beshtan ulkan.
i teng yoki beshtan ulkan.
i teng yoki beshtan ulkan.
i teng yoki beshtan ulkan.

Kurib turganingizdek siklning xar bir iteratsiyasida instruksiyalar bajariladi, sase-konstantalarga mos ravishda va u i- uzgaruvchisisning ma’nosi bilan tugri keladi. Shu inobatda kolgan barcha isntruksiyalar koldiriladi. Agarda 1ga yoki beshtan ulkan bulsa, default- instruksiyalari bajariladi.


Oldingi misolda switch – instruksiyasi int tipidagi uzgaruvchi bilan boshkarilsa. Kurib turganingizdek switch – instruksiyasini bosharish uchun xoxlagan butunsonli tipdagi uzgaruvchini foydalansa buladi, va char tipindagi uzgaruchini xam.
Misol case – tarmoklarida shar- ifodani va char- konstantani foydlanilishi.
G’G’ Char tipining switch – instruksiyasini
boshkarishda foydalanilishi.

Using System;


class ShwitchDemo2 { public static void
Main( ) { char ch;
for ( ch q ‘A “; ch switch ( ch ) { case ‘A’:
Console. WriteLine ( “ch A dan iborat “ );
break;
case ‘ B ’ :
Console. WriteLine ( “ ch B dan iborat “ );
Break;
case ‘ C:
Console. WriteLine ( “ ch S dan iborat“ );
Break;
case ‘ D:
Console. WriteLine ( “ ch D dan iborat“ );
Break;
case ‘ E:
Console. WriteLine ( “ ch E dan iborat“ );

Break;

Dasturning natiyjasi kuyidagi kurinishda buladi.

Ch A dan iborat


ch B dan iborat
ch S dan iborat
ch D dan iborat
ch E dan iborat

Itibor beringki, bu misolda default-instruksiyasi yuk. Va shart emasligini unutmang. Agarda, bunga zarurot bulmasa uni koldirib ketsada buladi.


C # da xato bulibxisoblanar edi agarda, case-tarmogining bittasiga kiradigan bulsa, keyingi ketma - ketlik instruksiyasiga utadi. Bu yerda boshkarishni pastga kuchishi man etilgan koydasi bor bulishi kerak, dasturchilar aytishi buyicha. Shuning uchunda sase-ketma-ketligi break instruksiyasi bilan tugaydi.( «Yukotish» boshka chora bilan kursa xam buladi, masalan goto – instruksiyasi bilan xam, lekin eng kupincha break foydalaniladi).
Break- instruksiyasi sase- instruksiyasini yakunlavchi ketma ketlik, switch kostruksiyasida- gilarni chikishga olib keladigan, va boshkarish instruksiyasini keyingi instruksiyasiga uzatuvchi, switch konstruksiyasidan tashkarisida joylashuvchi. Default- tarmogi instruksiyasining ketma-ketligi «yukolib » ketmasligi kerak va break- instruksyasi bilan yakunlashi kerak.
Boshkarishning pastga uzatish « Yukotish» man etilgan koydasi bu S # tilining bir uzgachiligi, boshka tillarga karaganda S, SQ Q va Java. Shu aytilgan uch tillarda « sekin» keiyngi instruksiyaga utish xukkiga ega keingi case-tarmogi instruksiyasiga mos, S # tilini yaratuvchilar « yukotish» chek kuygan ikii sababiga kura. Birinchidan bu kompilyatorga optimizatsiya maksadida case-tarmogining utish tartibini bemalol uzgartsa buladi, agarda, bitta case-ketma-ketligi xech kanak tusiksiz keyingiga utishish mumki n emas. Ikkinchidan, case-ktema- ketligining anik tugatilishi talabi maxsus instruksiyasi bilan tusatdan « yukotish» imkoniyatini yukotadi dasturchining bilmasdan yaratganligidan.
« Yukotish » mann etilaginiga karamasdan boshkarishni case- ketma- ketligidan keiygiga uzatilishi mumkin, keyingi misolda kursatilagandek dasturiy kod tashkil etsak buladi, iikita yoki undan kuprok case- instruksiyalari shu tashkil etilgan kodga yunaltirilsa buladi.
G’G’ «Bush » case-instruksiyalari « yukolishi» mumkin .

Using System;


class EmptyCasesCanFall { t public
static void Main( ) {
int i;

for ( i-1; i<5; iQQ ) switch ( i ) { case 1: case 2 : case 3 :


Console. WriteLine ( “ i teng 1, 2 yoki 3“ );
break; case 4 : Console. WriteLine ( “ i teng 4 “ );

break; );


)
}
Shu dasturning natiyjasi kuyidagi kurinishda buladi.

i teng 1, 2 yoki 3


i teng 1, 2 yoki 3
i teng 1, 2 yoki 3
i teng 4
Agarda, bu misolda i uzgaruvchisi 1,2 yoki 3 teng bulsa, unda WriteLine chakirish
usuilining birinchi instruksiyasi bajariladi ( >, agarda i ma’nosi 4 ga teng bulsa, unda ikkinchi instruksiyasi bajariladi. Bu yerda kursatilgan case-tarmogi paketlashtirish
« yukotish» koydasini yukotmaydi, sababi, xamma case – instruksiyalari bita kodlik ketma – ketligini foydalanadi.
Shunday case-paketlashtirish -eng tarkalgan uslub, kodlarni birgalikda foydalanish bir
nechcha case – tarmogi bilan, kerak emas kodlangan ketma- ketlikni olib tashlash
imkoniyatiga ega.



Download 0,57 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   76




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