Skip to content

JavaScript switch Bayonoti

switch bayonoti shartga qarab bir nechta kod bloklaridan birini tanlash uchun ishlatiladi.

U ifoda natijasini turli "case" (holat) lardan biri bilan solishtiradi va mos keladigan kod blokini ishga tushiradi. switch ko'pincha ko'p sonli if...else if...else bayonotlariga qaraganda o'qish uchun qulayroq alternativ hisoblanadi.

Sintaksisi

Sintaksis

js
switch(ifoda) {
  case x:
    // kod bloki
    break;
  case y:
    // kod bloki
    break;
  default:
    // mos keluvchi holat topilmasa, shu blok ishlaydi
}

U qanday ishlaydi:

  • switch ichidagi ifoda bir marta hisoblanadi.
  • Ifoda qiymati har bir case qiymati bilan solishtiriladi.
  • Agar moslik topilsa, unga tegishli kod bloki ishga tushadi.
  • Agar moslik topilmasa, hech qanday kod ishlamaydi (agar default bo'lmasa).

Misol

Hafta kunini aniqlash:

js
switch (new Date().getDay()) {
  case 0:
    day = "Yakshanba";
    break;
  case 1:
    day = "Dushanba";
    break;
  case 2:
    day = "Seshanba";
    break;
  case 3:
    day = "Chorshanba";
    break;
  case 4:
    day = "Payshanba";
    break;
  case 5:
    day = "Juma";
    break;
  case 6:
    day = "Shanba";
}

Eslatma

getDay() metodi hafta kunini 0 dan 6 gacha bo'lgan son sifatida qaytaradi (Yakshanba=0, Dushanba=1, ...).

break kalit so'zi

JavaScript break so'ziga yetib kelganda, u switch blokidan chiqib ketadi. Bu switch ichidagi keyingi kodlar ijrosini to'xtatadi.

Oxirgi case uchun break qo'yish shart emas, chunki switch o'sha yerda o'zi tugaydi.

Diqqat

break kalit so'zi juda muhim. Agarda u qo'yilmasa, JavaScript moslik topilganidan keyin ham keyingi case bloklarini ham (hatto qiymat mos kelmasa ham) ishga tushiraveradi (bunga "fall-through" deyiladi).

default kalit so'zi

default kalit so'zi birorta ham mos keluvchi case topilmaganda ishlaydigan kod blokini belgilaydi. Uni ishlatish majburiy emas.

Misol

Agar bugun Shanba (6) ham, Yakshanba (0) ham bo'lmasa, umumiy xabar chiqarish:

js
switch (new Date().getDay()) {
  case 6:
    text = "Bugun Shanba";
    break; 
  case 0:
    text = "Bugun Yakshanba";
    break; 
  default: 
    text = "Dam olish kunini intiqlik bilan kutamiz";
}

default blokini har doim switch oxirida bo'lishi shart emas, lekin u boshqa joyda bo'lsa, uni ham albatta break bilan tugatishni unutmang.

Case bloklarini guruhlash

Ba'zan siz bir nechta case uchin bir xil kodni ishlatmoqchi bo'lishingiz mumkin:

Misol

js
switch (new Date().getDay()) {
  case 4:
  case 5:
    text = "Tez orada dam olish kuni!";
    break; 
  case 0:
  case 6:
    text = "Hozir dam olish kuni";
    break;
  default: 
    text = "Ish kunlari...";
}

Qat'iy taqqoslash (Strict Comparison)

switch bayonoti qat'iy taqqoslash operatoridan (===) foydalanadi. Ya'ni, qiymatlarning nafaqat o'zi, balki turi ham bir xil bo'lishi shart.

Misol

Bu yerda x uchun hech qanday moslik topilmaydi, chunki matnli "0" sonli 0 ga teng emas.

js
let x = "0";
switch (x) {
  case 0:
    text = "O'chirildi";
    break;
  case 1:
    text = "Yoqildi";
    break;
  default:
    text = "Qiymat topilmadi";
}