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

тут

  • conditon – деяка умова, результат якої рівний 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 у власному блоці операторів (statement) може містити інші складні оператори, в тому числі й оператори розгалуження. Кількість рівнів вкладень необмежена і залежить від умови задачі та логічних навичків програміста.

Приклад.

'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

 


Споріднені теми