* Многовариантен избор в JavaScript
Публикувано на 06 септември 2009 в раздел ХHTML.
В статията за оператор "if-else", че го използваме, за да "разделим логически част от кода на програмата на две части". Какво можем да направим, за да го разделим на повече? Например нека имаме една променлива day, която приема стойност от 1 до 7. Искаме да напишем програма, която отпечатва името на ден от седмицата спрямо числото. С досегашните знания бихме решили задачата по следния начин:
<script type="text/javascript">
var day = 3;
if (day == 1){
document.write("Понеделник");
}
else{
if (day == 2){
document.write("Вторник");
}
else{
if (day == 3){
document.write("Сряда");
}
else{
if (day == 3){
document.write("Четвъртък");
}
else{
if (day == 3){
document.write("Петък");
}
else{
if (day == 3){
document.write("Събота");
}
else{
if (day == 3){
document.write("Неделя");
}
else{
document.write("Невалиден ден");
}
}
}
}
}
}
}</script>
Променяйте стойностите на a и ще видите, че резултата е точно това, което очаквахме. Виждаме, че с този метод ние на практика "влагаме" един оператор if-else в тялото на друг.
Както в повечето езици за програмиране, така и в JavaScript ни е дадена възможност за осъществяване на горната функционалност чрез един единствен оператор. Нарича се оператор за многовариантен избор - switch. Синтаксисът е следния:
switch(<променлива/израз>)
{
case <стойност 1>:
<операции>;
break;
case <стойност 2>:
<операции>;
break;
...
default:
<операции>
}
Ето как ще изглежда по-горния пример реализиран чрез този оператор:
<script type="text/javascript">
var day = 3;
switch(day){
case 1: document.write("Понеделник");
break;
case 2: document.write("Вторник");
break;
case 3: document.write("Сряда");
break;
case 4: document.write("Четвъртък");
break;
case 5: document.write("Петък");
break;
case 6: document.write("Събота");
break;
case 7: document.write("Неделя");
break;
default: document.write("Невалиден ден");
}
</script>
В условието в скобите след "switch" може освен променлива да присъства и цял израз.
Добави коментар