* Многовариантен избор в JavaScript
Публикувано на 06 септември 2009 от Филип Петров. Записано в XHTML/JS.
В статията за оператор „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“ може освен променлива да присъства и цял израз.
Trackback URI | RSS за коментарите
Пусни коментар
Страници
Категории
- C/C++ (45)
- DB (36)
- Dogs (49)
- Food (7)
- History (8)
- Java (33)
- Lada (41)
- Math (104)
- Metodos (23)
- NetSec (36)
- Other (76)
- Politics (32)
- Probability (13)
- VC++.Net (1)
- XHTML/JS (25)
Нови
- Един виц за капитализма
- Как да получиш целувка?
- Лека разходка на Витоша
- Роко и Берра на училище
- Газова бутилка под багажника на Лада Нива