Розгалуження
Розгалуження використовуються для виконання різноманітного коду, залежно від умови.
Принцип роботи простий - результат умови приводиться до буля true
або false
, після чого потік програми спрямовується в ту або іншу гілку.
Інструкція if
if (умова) {
// тіло if
}
Вхідні дані, які приводяться до буля, називаються умовою. Умова ставиться після оператора if
в круглих дужках. Якщо умова приводиться до true
, то виконується код у фігурних дужках тіла if
.
let cost = 0;
const subscription = "pro";
if (subscription === "pro") {
cost = 100;
}
console.log(cost); // 100
Якщо умова приводиться до false
, код у фігурних дужках буде пропущений.
let cost = 0;
const subscription = "free";
if (subscription === "pro") {
cost = 100;
}
console.log(cost); // 0
Інструкція if...else
if (умова) {
// тіло if
} else {
// тіло else
}
Розширює синтаксис if
таким чином, що якщо умова приводиться до false
, виконається код у фігурних дужках після оператора else
.
let cost;
const subscription = "free";
if (subscription === "pro") {
cost = 100;
} else {
cost = 0;
}
console.log(cost); // 0
Якщо умова приводиться до true
, тіло блока else
ігнорується.
let cost;
const subscription = "pro";
if (subscription === "pro") {
cost = 100;
} else {
cost = 0;
}
console.log(cost); // 100
Інструкція else...if
Конструкція if...else
може перевірити і зреагувати на виконання або невиконання лише однієї умови.
Блок else...if
дозволяє додати після else
ще один оператор if
з умовою. В кінці ланцюжка може бути класичний блок else
, який виконається лише у тому випадку, якщо жодна умова не приведеться до true
.
let cost;
const subscription = "premium";
if (subscription === "free") {
cost = 0;
} else if (subscription === "pro") {
cost = 100;
} else if (subscription === "premium") {
cost = 500;
} else {
console.log("Invalid subscription type");
}
console.log(cost); // 500
При першому true
перевірки припиняться і виконається лише один сценарій, який відповідає цьому true
. Тому, такий запис варто читати як: шукаю перший збіг умови, ігнорую все інше.