Darsliklar C Switch (Tanlash Operatori)

C C Switch (Tanlash Operatori)

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.

switchbir ifodaning qiymatini bir necha case yorlig’i bilan solishtirib, mos kelganini bajaradigan tanlash operatori. Har bir case odatda break bilan 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.