* Многовариантен избор в 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" може освен променлива да присъства и цял израз.
Добави коментар