C, PHP, VB, .NET

Дневникът на Филип Петров


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

 



Добави коментар

Адресът на електронната поща няма да се публикува


*