if/else розгалуження
if...else
Ми вміємо виводити на екран (console.log), отримувати інформацію від людини (prompt) і зберігати дані в змінних. Ми ще не вміємо вчити комп'ютер самостійно вирішувати що йому робити, спираючись на наявні дані.
Загалом, іноді, в залежності від умови, потрібно виконати різні дії. Наприклад: якщо на вулиці холодно, то тепліше одягнутися, інакше піти гуляти як є.
Для цього є оператор if
, наприклад:
Оператор if
Оператор if («якщо») отримує умову, в прикладі вище це temp <5
Комп'ютер обчислює умову, і якщо результат - так (правда, true
), то виконує команду, а якщо результат - ні (неправда, false
), то просто пропускає команду.
Якщо за істинної умови потрібно виконати більше однієї команди - вони оформлюються блоком коду в фігурних дужках:
Зараз спробуйте навчити програму писати текст "оооо тепло", якщо температура більше 4х градусів. Для цього використовуйте оператор >
(означає як більше
)
Вийшло? Йдемо далі.
Невірна умова, else
Цей блок потрібно писати, якщо є необхідність. Блок else («інакше») виконується, якщо умова невірна:
Що можна розміщувати всередині блоків { } ?
Все що завгодно! Включаючи інші умови!
Оператори порівняння
У програмуванні ми завжди щось з чимось порівнюємо.
Людською мовою:
Комп'ютерною мовою більше 10
- це дещо дивна нелогічна умова. Треба щось порівняти з чимось.
Ось як для комп'ютера правильно:
Ось як для комп'ютера неправильно:
Питання
Що буде, якщо переплутати команди місцями?
Що буде, якщо замість ==
писати =
? наприклад ось:
і ще таке спробуйте відразу:
Чому так виходить? Якщо не знаєте відповіді - не страшно, але просто не використовуйте присвоїти
всередині умов. Під кінець курсу можете запитати у волонтерів, чому це відбувається.
Тепер ви розумієте: є дорівнює
(==
), а є присвоїти
(=
) Не використовуйте присвоєння всередині умов.
А що буде тут?
Щоб такого лиха не виникало, візьміть за правило: завжди використовувати фігурні дужки: if (...) { ... }
(щоб явно виділити блок коду, який виконується за умовою)
Ще, вгадайте, що буде:
...і більше ніколи не намагайтеся написати потрійне порівняння. Чудово буде, якщо ви розберетеся, чому код так працює.
Порівняння рядків
До речі! Рядки теж можна порівнювати
Логічні оператори
Про логічні оператори - і, або, не (&&
, ||
, !
) - читайте в матеріалах. Обов'язково.
Оператори == і ===
Про різницю між ними ви можете прочитати в інтернеті
Додаткові матеріали
Умовне розгалуження (тернарний оператор) (uk.javascript.info)
Ще про тернарний оператор (Ш++)
Оператори порівняння (uk.javascript.info)
Логічні оператори (uk.javascript.info)
Про скорочення перевірок змінних boolean (Ш++)
Обов'язкові задачі
Км/день-1Км/день-2Ліфт Empire State BuildingВиникли питання або труднощі? Зверніться за допомогою до Ш++.
Last updated