JavaScript asoslari

switch konstruksiyasi

Bir o'zgaruvchini bir nechta variant bilan solishtirish kerak bo'lganda, ko'plab if..else o'rniga switch konstruksiyasi ancha aniqroq va o'qishga qulay bo'ladi.

Umumiy ko'rinish

switch bitta yoki bir nechta case blokidan va ixtiyoriy default dan iborat:

switch (x) {
  case 'qiymat1':  // if (x === 'qiymat1')
    // ...
    break;

  case 'qiymat2':  // if (x === 'qiymat2')
    // ...
    break;

  default:
    // ...
    break;
}

Ishlash misoli

Quyidagi misolda a qiymatiga qarab turli xabar chiqadi:

switch.js
// natija shu yerda chiqadi

Bu yerda a = 3 bo'lgani uchun case 3 ishga tushib, "Aynan uch!" chiqadi, so'ng break switch'dan chiqaradi.

"break" ning ahamiyati

Agar break yozilmasa, bajarilish keyingi case ga "o'tib ketadi", shartni tekshirmasdan! Buni "fall-through" (o'tib ketish) deyiladi.

break siz misolni ko'raylik:

switch-break.js
// natija shu yerda chiqadi
Yuqoridagi kod a = 2 uchun "Ikki", "Uch", "Default" โ€” hammasini chiqaradi! Chunki mos case topilgach, break uchramaguncha barcha keyingi bloklar bajariladi. Bu ko'pincha xatolarga sabab bo'ladi, shuning uchun har bir case oxiriga break qo'yishni unutmang.

"case" larni guruhlash

Bir nechta case bir xil kodni bajarishi kerak bo'lsa, ularni guruhlash mumkin. Bu aynan "fall-through" xususiyatidan foydalanadi:

switch-group.js
// natija shu yerda chiqadi

Bu yerda case 4 tanasi bo'sh, shuning uchun bajarilish case 5 ga o'tib, "O'rtacha" chiqaradi. Ya'ni 4 va 5 uchun bir xil natija.

Tur muhim: qat'iy tenglik (===)

switch qiymatlarni qat'iy tenglik (===) bilan solishtiradi. Ya'ni turlar ham mos kelishi shart, hech qanday avtomatik o'girish yo'q.

switch-strict.js
// natija shu yerda chiqadi

Yuqorida a โ€” satr "3". case 3 (son) mos kelmaydi, chunki 3 === "3" โ€” bu false. Faqat case "3" mos keladi.

Agar foydalanuvchidan olingan qiymatni tekshirsangiz, u ko'pincha satr bo'ladi. Sonlar bilan solishtirishdan oldin Number(a) orqali o'girishni yoki case larni satr shaklida yozishni unutmang.

Amaliy misol: hafta kunlari

switch-kun.js
// natija shu yerda chiqadi

Xulosa