switch - умовний оператор, оператор вибору.
switch (значення) {
case ідентифікатор:
дія
break;
case ідентифікатор :
дія
break;
default :
дія
break;
}
значення - значення за яким виконується вибір.
ідентифікатор - ідентифікатор з яким порівнюється саме значення.
дія - блок коду(оператори) який виконується якщо значення спів падає з ідентифікатором.
switch оператор вибірки. Виконує пошук case з потрібним ідентифікатором (міткою). Якщо потрібний ідентифікатор знайдений виконується код до оператора break.
Оператор break перериває виконання коду. У випадку якщо оператора break немає код виконується до наступного оператопа break або до кінця оператора switch.
Цю можливість можна використовувати якщо потрібно один і такий код при кількох ідентифікаторах або до наступного оператора break.
var x=1;
switch(x){
case 0:
alert('нуль');
break;
case 1:
alert('один');
case 2:
alert('два');
break;
}
var x=1;
switch(x){
case 0:
alert('нуль');
break;
case 1:
case 2:
alert('один, два');
break;
}
default - використовується якщо потрібно виконати певний код коли потрібного ідентифікатора не знайдено.
var x=5;
switch(x){
case 1:
alert('один');
break;
case 2:
alert('два');
break;
default:
alert('упс :-) не 1 і не 2');
break;
}
Оператор if можна вважати аналогом оператор case по вибірці:
var x=1;
switch(x){
case 1:
alert('один');
break;
case 2:
alert('два');
break;
default:
alert('не один і не два.');
break;
}
аналог за допомогою оператора if:
var x=1;
if(x==1)
alert('один');
else if(x==2)
alert('два');
else
alert('не один і не два.');
У JavaScript не має можливості у switch поставити ідентифікатор типу від 1 до 10 (1..10) тощо. Таку можливість можна досягнути якщо для значення передати true а умови ставити у ідентифікаторі. Тоді switch буде шукати істину умову:
var x=16;
switch(true){
case x==1:
x=1;
break;
case x>5 && x<10:
x=x+15;
break;
case x>12 && x<19 :
x=x/2;
break;
default:
x=0;
break;
}
alert(x);
var bal=8;
switch(bal){
case 12:
case 11:
alert('відмінно');
break;
case 10:
case 9:
case 8:
alert('добре');
break;
case 7:
case 6:
alert('задовільно');
break;
case 5:
case 4:
alert('погано');
break;
case 3:
case 2:
case 1:
alert('дуже погано');
break;
default:
alert('упс');
break;
}
var x='б';
switch(x){
case 'а':
x=1;
break;
case 'б':
x=2;
break;
case 'в':
x=3;
break;
default:
x=0;
break;
}
alert(x);
Якщо switch використовується у функції то break можна не писати у випадку коли використовується return:
function test(x){
switch(x){
case 1: return 'один';
case 2: return 'два';
case 3: return 'три';
default: return x;
}
}
alert(test(1));