JavaScript. Оператор разветвления if-else

Оператор разветвления if-else. Сокращенная форма if. Ступенчатая форма if-else-if. Вложенные операторы


Содержание


Поиск на других ресурсах:

1. Виды операторов разветвления

В языке JavaScript операторы разветвления позволяют выполнять последовательности операций (действий) в зависимости от выполнения (не выполнения) некоторого условия. Синтаксически операторы разветвления в JavaScript ничем не отличаются от таких же операторов других C-ориентированных языков таких как C++, C#, Java.

Операторы разветвления типа if-else имеют 3 разновидности или формы:

  • сокращенную форму if;
  • полную форму if-else;
  • ступенчатую (каскадную) форму if-else-if.

 

2. Сокращенная форма if

При сокращенной форме оператор if не использует ключевое слово else и выглядит следующим образом:

if (condition) statement

или

if (condition) {
  statement1
  statement2
  ...
  statementN
}

здесь

  • condition – некоторое условие, возвращающее значение true или false;
  • expression – выражение, выполняемое в случае если condition = true;
  • expression1, expression2, expressionN – выражения, выполняемые в случае если condition = true.

Если condition = false, то операторы statement, statement1, statement2, statementN не выполняються и программа переходит к оператору, следующему после выполнения оператора if. Таким образом, программа ничего не выполняет.

Если при выполнении условия condition нужно выполнить несколько операторов, то эти операторы объединяются в блок операторов с помощью фигурных скобок { }.

Приклад.

// Оператор if. Сокращенная форма

var a = 8, b = 5

// Одно условие
if (a > b)
  console.log("a>b");

if (a == b)
  console.log("a==b");

if (a < b)
  console.log("a<b")

// Несколько условий
var month = 5

if ((month == 1) || (month == 3) || (month == 5) ||
  (month == 7) || (month == 8) || (month == 10) || (month = 12))
console.log("31 days")
if ((month == 4) || (month == 6) || (month == 9) || (month == 11))
  console.log("30 days")
if (month == 2)
  console.log("28 (29) days")

Результат

a > b
31 days

 

3. Полная форма if-else

Вторая форма оператора разветвления выглядит следующим образом

if (condition)
  statement1
else
  statement2

здесь

  • condition – некоторое условие, результат которого равен true или false;
  • statement1 – оператор, выполняемый если condition = true;
  • statement2 – оператор, выполняемый при condition = false.

Если при выполнении или не выполнении условия необходимо выполнить несколько операторов, то эти операторы берутся в блок фигурных скобок { }. В этом случае один из возможных вариантов вида оператора может быть следующим

if (condition) {
  // Statements
  // ...
}
else {
  // Statements
  // ...
}

Пример.

'use strict';

// Оператор if-else. Полная форма.
// Решение квадратного уравнения

// 1. Заданы коэффициенты
var a = 8, b = 5, c = -4

// 2. Вычислить дискриминант
var D = b * b - 4 * a * c

// 3. Определить корни уравнения
if (D < 0)
  console.log("Уравнение не имеет корней")
else {
  var x1 = (-b - Math.sqrt(D)) / (2 * a)
  var x2 = (-b + Math.sqrt(D)) / (2 * a)
  console.log("x1 = " + x1)
  console.log("x2 = " + x2)
}

Результат

x1 = -1.0855823048033113
x2 = 0.4605823048033113

 

4. Ступенчатая форма if-else-if. Пример

Ступенчатая форма оператора условного перехода позволяет перебрать все возможные варианты исключая их наложение. Ступенчатая форма подобна операции ИЛИ. Выполняется только один из вариантов.
Общая форма оператора if-else-if следующая:

if (condition1)
  statement_1
else
if (condition2)
else
  statement_2
else
  ...
if (conditionN)
  statement_N
else
  statement_N+1

здесь

  • condition1, condition2, conditionN – некоторое условное выражение, возвращающее значение true или false;
  • statement1, statement2, statementN – один или несколько операторов, выполняемых если одно из выражений condition1, condition2, conditionN принимают значения true.

Если вместо statement1, statement2, statementN нужно выполнить несколько операторов, тогда эти операторы нужно взять в фигурные скобки { }.

Пример.

'use strict';

// Оператор if-else-if. Ступенчатая форма

// По номеру времени года вывести название этого времени года

// 1. Задан номер времени года (1..4)
var season = 2

// 2. Использовать оператор if-else-if
if (season == 1)
  console.log("Winter")
else
if (season == 2)
  console.log("Spring")
else
if (season == 3)
  console.log("Summer")
else
if (season == 4)
  console.log("Autumn")
else
  console.log("Incorrect number of season")

Результат

Spring

 

5. Вложенные операторы if. Пример

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

Пример.

'use strict';

// Вложенные операторы разветвления

// Определить среднее между тремя числами

// 1. Заданы 3 числа, которые не равны между собой
var a = 3, b = 2, c = 1
var avg

// 2. Использовать вложенные операторы if
if (a > b) {
  if (a > c) {
    // a - max
    if (b > c)
      avg = b
    else
      avg = c
  }
  else // c - max
    avg = a
}
else {
  // a < b
  if (b > c) {
    if (a > c)
      avg = a
    else
      avg = c
  }
  else
    avg = b
}

console.log("avg(" + a + ", " + b + ", " + c + ") = " + avg)

Результат.

avg(3, 2, 1) = 2

 


Связанные темы