Прикладной код

Вычислить по условию

Вычислить по условию

Условные операторы позволяют пропустить или выполнить другие операторы в зависимости от значения указанного выражения. Такие операторы так же называют операторами «ветвления».

Оператор «if...else»
Оператор «switch»
Оператор «?:»

Оператор if — это базовый управляющий оператор, позволяющий интерпретатору JavaScript выполнять операторы в зависимости от условий.

Синтаксис

Оператор if имеет две формы. Первая:

if (выражение)
 оператор

В этой форме сначала вычисляется выражение. Если результат является истинным, то оператор выполняется. Если выражение возвращает ложное значение, то оператор не выполняется.

Вторая форма оператора if вводит конструкцию else. Она выполняется когда выражение возвращает ложное значение. Ее синтаксис:

if (выражение) 
   оператор1
else
   оператор2

Эта форма выполняет оператор1, если выражение возвращает истинное значение, и оператор2, если выражение возвращает ложное значение.

Пример

var d = new Date();
var time = d.getHours();

if (time < 10) {
 alert("Доброе утро!");
} else {
 alert("Добрый день!");
}

Оператор else if

Else if формально не является самостоятельным оператором JavaScript. Этот оператор используется если необходимо выполнить один из многих фрагментов. Принцип работы else if заключается в применении повторяющегося оператора if...else.

Синтаксис

if (n == 1) {
 // Выполнить блок 1
} else if (n == 2) {
 // Выполнить блок 2
} else if (n == 3) {
 // Выполнить блок 3
} else {
 // Если ни один из предыдущих операторов else не был выполнен, выполнить блок 4
}

Пример

if (x > 5) {

} else if (x > 50) {

} else {

}

Оператор switch предназначен для многопозиционного ветвления, когда все ветви зависят от значения одного и того же выражения.

Синтаксис

switch (выражение) {
 инструкции
}

Полный синтаксис оператора может быть дополнен ключевым словом case, за которым следует выражение и символ двоеточия. В конце каждого блока case существует ключевое слово break. Оператор break приводит к передаче управления в конец оператора switch и продолжению выполнения операторов, следующих далее.

switch (n) {
 case 1: // Выполняется, если n === 1 
  // Выполнить блок 1
  break; // Здесь остановиться 
 case 2: // Выполняется, если n === 2
  // Выполнить блок 2
  break; // Здесь остановиться 
 case 3: // Выполняется, если n === 3 
  // Выполнить блок 3
  break; // Здесь остановиться 
 default: // Если все остальное не подходит... 
  // Выполнить блок 4
  break; // Здесь остановиться
}

Комментарии

Если оператор break отсутствует, switch начнет выполнение блока кода с меткой case, соответствующей значению выражения, продолжая выполнение операторов, пока не дойдет до конца блока.

При использовании switch внутри функции, вместо break можно использовать оператор return. Оба оператора служат для завершения работы оператора switch и предотвращения перехода к следующей метке case.

Оператор switch сначала вычисляет выражение после ключевого слова switch, а затем выражения case, в том порядке, в котором они указаны. Вычисление идет пока не будет найдено совпадающее значение. Совпадение определяется с помощью оператора идентичности (===), поэтому выражения должны совпадает без преобразования типов.

Если ни одно из выражений case не соответствует выражению switch, оператор начинает выполнение оператора с меткой default:. При отсутствии метки default:, тело оператора switch будет полностью пропущено.

Пример

var x = 3;

switch (x) {
 case 1:
  alert("x равен 1");
  break;
 case 2:
  alert("x равен 2");
  break;
 case 3:
  alert("x равен 3");
  break;
 default:
  alert("x > 3");
}

Тернарный оператор (?:) - это единственный оператор с тремя операндами в JavaScript.

Синтаксис

условие ? выражение1 : выражение2

Параметры

  • условие — выражение, которое принимает значение true или false;
  • выражение1, выражение2 — выражения, значения которых могут принадлежать к любому типу.

Описание

Операнды условного оператора могут быть любого типа. Первый операнд вычисляется и используется как логическое (булево) значение. Если первый операнд, имеет истиное значение, то вычисляется и возвращается значение во втором операнде. Если первый операнд имеет ложное значение то вычисляется и возвращается значение в третьем операнде. Вычисляется всегда только какой-то один операнд.

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

// выполнение кода с помощью if

var message = 'Привет ';

if (username)
{
        message += username;
}
else 
{
        message += 'друг';
}


// выполнение кода с помощью ?:

var message = 'Привет ' + (username ? username : 'друг');

Пример

var n = 10;

// Определить четное или нечетное число
var result = (n % 2 == 0) ? "четное" : "нечетное"; // Результат "четное"