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 va tushunarli qiladi. U ayniqsa aniq, sanab o’tiladigan variantlar bilan ishlashda qulay.

switchbir ifodaning qiymatini bir necha case yorlig’i bilan ketma-ket solishtirib, mos kelganini bajaradigan tanlash operatori. Har bir case odatda break bilan tugaydi.

Oddiy switch

switch berilgan qiymatni har bir case bilan solishtiradi va mos kelganini bajaradi:

#include <iostream>
using namespace std;

int main() {
    int kun = 3;
    switch (kun) {
        case 1:
            cout << "Dushanba" << endl;
            break;
        case 2:
            cout << "Seshanba" << endl;
            break;
        case 3:
            cout << "Chorshanba" << endl;
            break;
        default:
            cout << "Noma'lum kun" << endl;
    }
    return 0;
}
Chorshanba

kun qiymati 3 bo’lgani uchun case 3 bajarildi. default esa hech qaysi case mos kelmaganda ishlaydigan zaxira variant (Python’dagi else kabi).

break ning muhimligi

break operatori juda muhim — u switchdan chiqishni ta’minlaydi. Agar break yozilmasa, dastur keyingi caselarga ham “sirg’alib” o’tib ketadi (bu “fall-through” deb ataladi):

#include <iostream>
using namespace std;

int main() {
    int son = 1;
    switch (son) {
        case 1:
            cout << "Bir" << endl;
        case 2:
            cout << "Ikki" << endl;
        case 3:
            cout << "Uch" << endl;
            break;
    }
    return 0;
}
Bir
Ikki
Uch

case 1 da break yo’qligi uchun dastur to’xtamay, case 2 va case 3ni ham bajardi. Odatda bu xato hisoblanadi — shuning uchun har bir caseni break bilan yakunlashni odat qiling.

switch va if…else: qaysi biri qachon?

Ikkovining farqini jadvalda ko’ramiz:

Xususiyat switch if...else
Solishtirish turi aniq tenglik har qanday shart
Oraliq (masalan, x > 5) qo’llab-quvvatlamaydi qo’llab-quvvatlaydi
O’qilishi ko’p variantda toza murakkab shartda moslashuvchan

Amaliy qoida: qiymat aniq variantlar bilan (kun raqami, menyu tanlovi) solishtirilsa — switch; oraliq yoki murakkab shart bo’lsa — if...else.

Amaliy misol: menyu

switch menyu tuzishda ideal:

#include <iostream>
using namespace std;

int main() {
    char tanlov = 'B';
    switch (tanlov) {
        case 'A':
            cout << "Ro'yxatdan o'tish" << endl;
            break;
        case 'B':
            cout << "Tizimga kirish" << endl;
            break;
        default:
            cout << "Noto'g'ri tanlov" << endl;
    }
    return 0;
}
Tizimga kirish

E’tibor bering: switch char turi bilan ham ishlaydi — bu menyu harflarini tanlashda qulay.

Xulosa

Bu bo’limda switch operatori, case va default yorliqlari, break ning muhimligi (fall-through), hamda switch bilan if...else orasidagi tanlovni ko’rib chiqdik. Aniq variantli tanlov uchun switch — toza yechim. Keyingi darsda takrorlash operatorlari — while va do-while ga o’tamiz.