if/else розгалуження

if...else

Ми вміємо виводити на екран (console.log), отримувати інформацію від людини (prompt) і зберігати дані в змінних. Ми ще не вміємо вчити комп'ютер самостійно вирішувати що йому робити, спираючись на наявні дані.

Загалом, іноді, в залежності від умови, потрібно виконати різні дії. Наприклад: якщо на вулиці холодно, то тепліше одягнутися, інакше піти гуляти як є.

Для цього є оператор if, наприклад:

let temp = prompt("Яка на вулиці температура?");
if (temp < 5) {
    console.log("Одягни :) шапку!");
}

Оператор if

Оператор if («якщо») отримує умову, в прикладі вище це temp <5 Комп'ютер обчислює умову, і якщо результат - так (правда, true), то виконує команду, а якщо результат - ні (неправда, false), то просто пропускає команду.

Якщо за істинної умови потрібно виконати більше однієї команди - вони оформлюються блоком коду в фігурних дужках:

if (temp < 5) {
    console.log("Будь ласка..");
    console.log("..одягни шапку!");
}

Зараз спробуйте навчити програму писати текст "оооо тепло", якщо температура більше 4х градусів. Для цього використовуйте оператор > (означає як більше)

Вийшло? Йдемо далі.

Невірна умова, else

Цей блок потрібно писати, якщо є необхідність. Блок else («інакше») виконується, якщо умова невірна:

Що можна розміщувати всередині блоків { } ?

Все що завгодно! Включаючи інші умови!

Оператори порівняння

У програмуванні ми завжди щось з чимось порівнюємо.

Людською мовою:

Комп'ютерною мовою більше 10 - це дещо дивна нелогічна умова. Треба щось порівняти з чимось.

Ось як для комп'ютера правильно:

Ось як для комп'ютера неправильно:

Питання

Що буде, якщо переплутати команди місцями?

Що буде, якщо замість == писати =? наприклад ось:

і ще таке спробуйте відразу:

Чому так виходить? Якщо не знаєте відповіді - не страшно, але просто не використовуйте присвоїти всередині умов. Під кінець курсу можете запитати у волонтерів, чому це відбувається.

Тепер ви розумієте: є дорівнює (==), а є присвоїти (=) Не використовуйте присвоєння всередині умов.

А що буде тут?

Щоб такого лиха не виникало, візьміть за правило: завжди використовувати фігурні дужки: if (...) { ... } (щоб явно виділити блок коду, який виконується за умовою)

Ще, вгадайте, що буде:

...і більше ніколи не намагайтеся написати потрійне порівняння. Чудово буде, якщо ви розберетеся, чому код так працює.

Порівняння рядків

До речі! Рядки теж можна порівнювати

Логічні оператори

Про логічні оператори - і, або, не (&&, ||, !) - читайте в матеріалах. Обов'язково.

Оператори == і ===

Про різницю між ними ви можете прочитати в інтернеті

Додаткові матеріали

Умовне розгалуження (тернарний оператор) (uk.javascript.info)

Ще про тернарний оператор (Ш++)

Оператори порівняння (uk.javascript.info)

Логічні оператори (uk.javascript.info)

Про скорочення перевірок змінних boolean (Ш++)

Обов'язкові задачі

Км/день-1Км/день-2Ліфт Empire State Building

Виникли питання або труднощі? Зверніться за допомогою до Ш++.

Last updated

Was this helpful?