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;
}
xqiymati har bircaseqiymati bilan tartib bo'yicha solishtiriladi;- Mos
casetopilsa, kod o'sha yerdanbreakga qadar (yokiswitchoxiriga qadar) bajariladi; - Hech qaysi
casemos kelmasa,defaultbloki bajariladi (agar bo'lsa).
Ishlash misoli
Quyidagi misolda a qiymatiga qarab turli xabar 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:
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:
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.
Yuqorida a โ satr "3". case 3 (son) mos kelmaydi, chunki 3 === "3" โ bu false. Faqat case "3" mos keladi.
Number(a) orqali o'girishni yoki case larni satr shaklida yozishni unutmang.Amaliy misol: hafta kunlari
Xulosa
- switch โ bir qiymatni bir nechta variant bilan solishtirishning ixcham usuli;
- Solishtirish qat'iy tenglik (===) bilan bajariladi โ turlar ham mos kelishi kerak;
- Har bir
caseoxiriga break qo'yish shart, aks holda keyingi bloklar ham bajariladi; - Bir nechta
caseni guruhlab, ular uchun bir xil kod bajarish mumkin; - default โ hech qaysi variant mos kelmaganda ishlaydi.