Tanlash operatori
switch strukturasi. if-else-if yordami bilan bir necha shartni test qilishimiz mumkin. Lekin bunday yozuv nisbatan o'qishga qiyin va ko'rinishi qo'pol bo'ladi. Agar shart ifoda butun son tipida bo'lsa yoki bu tipga keltirilishi mumkin bo'lsa, biz switch (tanlash) ifodalarini ishlata olamiz. switch strukturasi bir necha case etiketlaridan (label) va majburiy bo'lmagan default etiketidan iboratdir. Etiket bu bir nomdir. U dasturnig bir nuqtasidaga qo'yiladi. Programmaning boshqa yeridan ushbu etiketga o'tishni bajarish mumkin. O'tish yoki sakrash goto bilan amalga oshiriladi, switch blokida ham qo'llaniladi. 5 lik sistemadagi bahoni so'zlik bahoga o'tkazadigan blokni yozaylik
switch ga kirgan o'zgaruvchi (yuqorigi misolda baho) har bir case etiketlarining qiymatlari bilan solishtirilib chiqiladi. Solishtirish yuqoridan pastga bajariladi. Shartdagi qiymat etiketdagi qiymat bilan teng bo'lib chiqqanda ushbu case ga tegishli ifoda yoki ifodalar bloki bajariladi. So'ng break (buzmoq, tugatmoq) sakrash buyrug'i bilan switch ning tanasidan chiqiladi. Agar break qo'yilmasa, keyingi etiketlar qiymatlari bilan solishtirish bajarilmasdan ularga tegishli ifodalar ijro ko'raveradi. Bu albatta biz istamaydigan narsa. default etiketi majburiy emas. Lekin shart chegaradan tashqarida bo'lgan qiymatda ega bo'lgan hollarni diagnostika qilish uchun kerak bo'ladi. case va etiket orasida bo'sh joy qoldirish shartdir. Chunki, masalan, “case 4:” ni case4: deb yozish oddiy etiketni vujudga keltiradi, bunda sharti test qilinayotgan ifoda 4 bilan solishtirilmay o'tiladi.
int baho;
baho = 4;
switch(baho){
case 1:
Console.WriteLine(“Alo”);
Break;
case 2:
Console.WriteLine(“Yaxshi”);
break;
case 3:
Console.WriteLine(“Qoniqqarli”);
break;
case 4:
Console.WriteLine(“qoniqarsiz”);
break;
default:
Console.WriteLine(“baho xato qo’yilgan”);
break;
}
For operatori
For loop quydagi tarifga ega:
for ([qarshi bog’lash]; [holat]; [hisoblagichni o’zgartirish])
{
// harakatlar
}
For uchun standartni ko’rib chiqing:
for (int i = 0; i < 9; i++)
{
Console.WriteLine($"{i} sonining kvadrati {i*i}");
}
For deklaratsiyasining birinchi qismi int i = 0- hisoblagichni yaratadi va ishga tushiradi. Hisoblagich int turi bo'lishi shart emas . Bu boshqa raqamli tur bo'lishi mumkin, masalan, suzuvchi. Va tsikl bajarilishidan oldin uning qiymati 0 ga teng bo'ladi. Bu holda bu o'zgaruvchini e'lon qilish bilan bir xildir.
Ikkinchi qism - bu ko'chadan bajariladigan shart. Shartli ifoda to'g'ri kelguncha, tsikl ishlaydi. Bunday holda, tsikl hisoblagich 9 ga yetguncha ishlaydi.
Uchinchi qism esa hisoblagichni bittaga ko'paytiradi. Shunga qaramay, biz birma-bir oshirishimiz shart emas. Kamaytirilishi mumkin i--:.
Natijada, i qiymati 9 ga teng bo'lguncha tsikl bloki 9 marta ishlaydi va har safar bu qiymat 1 ga ko'payadi.
Biz tsiklni e'lon qilishda barcha shartlarni belgilashimiz shart emas. Masalan, biz shunday yozishimiz mumkin:
|
int i = 0;
for (; ;)
{
Console.WriteLine($"{++i} sonining kvadrati {i*i}");
}
|
Rasman, tsikl ta'rifi faqat hozir definition bloklari biz bo'shatib, shu qoladi: for (; i <;). Bizda boshlang'ich hisoblagich o'zgaruvchisi yo'q, shart yo'q, shuning uchun tsikl abadiy ishlaydi - cheksiz tsikl.
Shuningdek, biz bir qator bloklarni tashlab yuborishimiz mumkin:
|
int i = 0;
for (; i<9;)
{
Console.WriteLine($"{++i} sonining kvadrati {i*i} ");
}
|
Ushbu misol mohiyatan birinchi misolga teng: bizda ham hisoblagich mavjud, faqat u tsikldan tashqarida yaratilgan. Bizda loopning bajarilishi uchun shart mavjud. Va blokning o'zida allaqachon hisoblagich o'sishi mavjud.
Do'stlaringiz bilan baham: |