switch (tanlash operatori) — bitta qiymatni ko’plab mumkin bo’lgan variantlar bilan solishtirishning tozaroq usuli. Uzun if-else if zanjiri o’qishni qiyinlashtirganda, switch kodni ancha tartibli qiladi. U ayniqsa aniq, sanab o’tiladigan variantlar bilan ishlashda qulay.
switch — bir ifodaning qiymatini bir necha
caseyorlig’i bilan solishtirib, mos kelganini bajaradigan tanlash operatori. Har bircaseodatdabreakbilan tugaydi.
Oddiy switch
switch berilgan qiymatni har bir case bilan solishtiradi:
#include <stdio.h>
int main(void) {
int kun = 3;
switch (kun) {
case 1:
printf("Dushanba\n");
break;
case 2:
printf("Seshanba\n");
break;
case 3:
printf("Chorshanba\n");
break;
default:
printf("Noma'lum kun\n");
}
return 0;
}
Chorshanba
kun qiymati 3 bo’lgani uchun case 3 bajarildi. default esa hech qaysi case mos kelmaganda ishlaydi.
break ning muhimligi
break operatori juda muhim — u switchdan chiqishni ta’minlaydi. Agar break yozilmasa, dastur keyingi case larga ham “sirg’alib” o’tib ketadi (fall-through):
#include <stdio.h>
int main(void) {
int son = 1;
switch (son) {
case 1:
printf("Bir\n");
case 2:
printf("Ikki\n");
case 3:
printf("Uch\n");
break;
}
return 0;
}
Bir
Ikki
Uch
case 1 da break yo’qligi uchun dastur to’xtamay, keyingilarni ham bajardi. Har bir case ni break bilan yakunlashni odat qiling.
switch va if farqi
Ikkovining farqini jadvalda ko’ramiz:
| Xususiyat | switch |
if-else |
|---|---|---|
| Solishtirish | aniq tenglik | har qanday shart |
Oraliq (x > 5) |
qo’llab-quvvatlamaydi | qo’llab-quvvatlaydi |
| Tur | butun son, belgi | har qanday |
| O’qilishi | ko’p variantda toza | murakkab shartda moslashuvchan |
Diqqat: C’da switch faqat butun son (int) va belgi (char) bilan ishlaydi — matn (char massivi) bilan emas.
Amaliy misol: menyu
switch menyu tuzishda ideal, ayniqsa char bilan:
#include <stdio.h>
int main(void) {
char tanlov = 'B';
switch (tanlov) {
case 'A':
printf("Ro'yxatdan o'tish\n");
break;
case 'B':
printf("Tizimga kirish\n");
break;
default:
printf("Noto'g'ri tanlov\n");
}
return 0;
}
Tizimga kirish
Xulosa
Bu bo’limda switch operatori, case/default, break ning muhimligi (fall-through) va uning if dan farqini ko’rib chiqdik. C’da switch faqat butun son va belgi bilan ishlaydi. Keyingi darsda takrorlash operatorlari — while va do-while ga o’tamiz.