Раздел: Сайтостроение / JavaScript /

Оператор выбора в JavaScript

Что такое JavaScript Что такое JavaScript

Небольшая книга о JavaScript, которая поможет вам в изучении JavaScript. В книге и рассылке сведения для начинающих: что такое JavaScript, как это работает, письма, которые помогут принять решение, надо ли вам это или нет, а также полезные ссылки на обучающие материалы. Подробнее...

Как всегда напоминаю, что полный обучающий курс по JavaScript можно найти здесь:

>>> JavaScript, jQuery и Ajax с нуля до гуру >>>

Ранее я рассказывал об условном операторе. С помощью этого оператора можно создавать довольно сложные ветвления, то есть, в зависимости от, например, значения проверяемой переменной, выполнять тот или иной участок кода. Например:

var x = 1;

if (x == 1) 
{
  document.write("x = 1 <br>"); 
}
else 
{
  if (x == 2) 
  {
    document.write("x = 2 <br>"); 
  }
  else 
  {
    if (x == 3) 
    {
      document.write("x = 3 <br>"); 
    }
    else 
    {
      document.write("x = " + x + "<br>"); 
    } //if (x == 3)
  }   //if (x == 2)
}     //if (x == 1)

Это вполне допустимая с точки зрения синтаксиса конструкция. Этот код будет правильно работать - можете сами убедиться. И есть только одно “но” - такой исходный код слишком сложен и часто малопонятен. По этой причине совершить ошибку в таком коде можно довольно легко. Хорошо, что есть такая штука, как...

Оператор switch в JavaScript

Как вы понимаете, использовать множество операторов if-else таким образом, как это показано выше, мягко говоря, неудобно. Поэтому почти во всех языках программирования имеется так называемый оператор выбора.

Оператор switch (иногда это называют “инструкция switch”) выполняет выбор того или иного участка кода для исполнения, в зависимости от значения проверяемой переменной.

Тот же самый код, который мы мучительно писали выше, с использованием оператора выбора будет выглядеть так:

var x = 1;

switch(x) 
{
  case 1 :
    document.write("x = 1 <br>"); 
    break;
    
  case 2 :
    document.write("x = 2 <br>"); 
    break;
    
  case 3 :
    document.write("x = 3 <br>"); 
    break;
    
  default :
    document.write("x = " + x + "<br>");
    break; 
}

Оператор switch(x) проверяет значение переменной x, и сравнивает его со значениями, указанными после слов case. Если он находит совпадение, то выполняет исходный код, который находится после case. Если совпадения не найдены, то выполняется код по умолчанию, который находится после слова default.

Слово default не является обязательным. Если его нет, то в случае отсутствия совпадений просто ничего не происходит, и сценарий выполняется дальше.

ВАЖНО!
Обратите внимание на ключевое слово break. Если его не использовать, то после первого нахождения совпадения все последующие инструкции будут выполнены, а не только тот блок, где найдено совпадение. Например, вот такой сценарий:

var x = 2;

//Использование switch без break

switch(x) 
{
  case 1 :
    document.write("x = 1 <br>");
    
  case 2 :
    document.write("x = 2 <br>"); 
    
  case 3 :
    document.write("x = 3 <br>"); 
    
  default :
    document.write("x = " + x + "<br>");
}

выведет на экран:

x = 2
x = 3
x = 2

ПРИМЕЧАНИЕ
Меня, как человека, начинавшего изучение программирования с Паскаля, такое поведение оператора выбора всегда сильно бесило. Но JavaScript создан на основе С/С++, поэтому вобрал в себя почти все их заморочки.

Использование switch в функциях

Как я уже сказал выше, ключевое слово break надо использовать в конце каждого блока case. Это слово служит в данном случае для выхода из блока switch, то есть для завершения работы оператора выбора.

Если же вы используете switch в функции, то можно слово break не применять, а обойтись только инструкцией return. Пример:

function TestSwitch(op, x, y)
{
  switch(op) 
  {
    case '+' :
      return(x + y);
      
    case '-' :
      return(x - y);
      
    case '*' :
      return(x * y);
      
    default :
      return("Неизвестная операция");
  }
}

document.write(TestSwitch('+', 1, 2));

Этот пример выведет на экран число 3.

Как видите, язык JavaScript довольно гибкий. Одна и та же функция может возвращать как числовое значение, так и строковое, в зависимости от результата. Это, конечно, очень удобно, хотя и может привести к ошибкам из-за невнимательности программиста.

ПРИМЕЧАНИЕ
Слово default в наших примерах указывается в конце блока switch. Это соответствует логике, однако это не обязательно делать так, потому что default в JavaScript можно располагать в любом месте блока switch.

Эта статья - лишь капля в море знаний о JavaScript. Если хотите испить эту чашу до дна, то изучить этот язык, а также jQuery и Ajax можно здесь:

>>> JavaScript, jQuery и Ajax с нуля до гуру >>>


Программирование на JavaScript с Нуля до Гуру 2.0 Программирование на JavaScript

Видеокурс о программировании на JavaScript. Содержит 8 больших разделов от основ до работы с сетевыми запросами. В комплекте 5 подарков - мини-курсов по темам, связанным с сайтостроением. 72 урока продолжительностью более 13 часов. Упражнения и примеры исходных кодов. Поддержка от автора. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика