Switch ifodasi bir nechta if tekshiruvlarini almashtirishi mumkin.
Bu qiymatni bir nechta variant bilan taqqoslashning yanada tavsiflovchi usulini beradi.
Sintaksis
Switch bir yoki bir nechta case bloklariga ega va ixtiyoriy sukut bo’yicha.
Bu shunday ko’rinishga ega:
switch(x) {
case 'value1': // if (x === 'value1')
...
[break]
case 'value2': // if (x === 'value2')
...
[break]
default:
...
[break]
}
xqiymati birinchicasedan qat’iy tenglik tekshiriladi (ya’nivalue1) keyin ikkinchisiga (value2) va boshqalar.- Agar tenglik topilsa,
switchmos keladigancasedan boshlab, eng yaqinbreakga qadar (yokiswitchtugaguniga qadar) kodni bajarishni boshlaydi. - Agar biron bir holat mos kelmasa, u holda
defaultkodi bajariladi (agar mavjud bo’lsa).
Misol
Switch misoli (bajarilgan kod ajratilgan):
Bu erda switch 3 bo’lgan birinchi case variantidan a ni taqqoslashni boshlaydi. Taqqoslash muvaffaqiyatsiz tugadi.
Keyin 4. Bu to’g’ri, shuning uchun ijro case 4 dan eng yaqin break ga qadar boshlanadi.
Agar break bo’lmasa, ijro keyingi case ga hech qanday tekshiruvsiz davom etadi.
break siz misol:
Yuqoridagi misolda biz uchta alert ning ketma-ket bajarilishini ko’ramiz:
alert("Aynan!");
alert("Juda katta");
alert("Men bunday qiymatlarni bilmayman");
switch/caseargumenti bo’lishi mumkinIkkalaswitchvacase o’zboshimchalik bilan ifodalashga imkon beradi.
Masalan:
Bu yerda +a 1 ni beradi, bu b bilan case da taqqoslanadi va tegishli kod bajariladi.
“Case” ning guruhlanishi
Bir xil kodga ega bo’lgan case ning bir nechta variantlarini guruhlash mumkin.
Masalan, agar biz bir xil kodni case 3 va case 5 uchun ishlashini istasak:
Endi 3 va 5 holat bir xil xabarni ko’rsatadi.
Holatning “guruhlash” qobiliyati – bu switch/case ning breaksiz ishlashining yon ta’siri. Bu erda 3 holatning bajarilishi (*) satridan boshlanadi va 5 holatidan o’tadi, chunki break yo’q.
Turi muhim
Shuni ta’kidlaylikki, tenglikni tekshirish har doim qat’iydir. Qiymatlar mos kelish uchun bir xil turda bo’lishi kerak.
Masalan, quyidagi kodni ko’rib chiqaylik:
0,1uchun birinchialertishlaydi.2uchun ikkinchialertishlaydi.- Ammo
3uchunpromptnatijasi"3"matnidir, bu3raqamiga qat’iy teng emas===. Shunday qilibcase 3da o’lik kod bor!Defaultholat bajariladi.