Головна > Блог > Презентації > javascript > JavaScript основи 2. if else switch. Логічні розгалуження.
25 Бер 19
Зміст:

Привіт!

Минулого разу ми дізнались, як працювати зі змінними.

Сьогодні буде знайомство з логічними розгалуженнями.

Що таке логічне розгалуження?

Уявіть собі ситуацію, коли Ви ідете вулицею і доходите до перехрестя, а на світлофорі червоне світло. Які ваші дії? Звісно Ви зупинитесь і будете чекати до того моменту, поки не з’явиться зелене світло. Ось це і є логічне розгалуження, адже, якщо в світлофору одразу було зелене світло,  Ви просто перейшли б вулицю і продовжили свою прогулянку. Іншими словами, є якійсь зовнішні фактор, який впливає на поточну ситуацію. Спробуймо написати такий код людською мовою, але з присмаком програмування.

Тут все зрозуміло.

А тепер переробимо це все на більш наближений до реалій код.

 

 

Ок…все теж зрозуміло. А тепер перекладемо деякі частини нашого коду на англійську мову, а дії виведемо в консоль.

як бачимо, в нас нічого не змінилось , окрім мови (ну і того, що я вирішив вивести в консоль, можна було б залишити і старі данні).

Але як обробляється частина isGreenLight ?Що це таке?. isGreenLight – це булева змінна. У випадку, якщо вона еквівалентна true – виконається перший блок (тобто if), а в іншому випадку (false) виконається блок else.

А якщо умов декілька? Наприклад, зелене світло(isGreenLight = true) і безпечно на дорозі (isSafety = true)?

Тут можна вирішити двома способами

Простий.

if  в if.  Або блок в блоці. Або… Та назвіть як завгодно, все одно буде дія тільки якщо виконається спочатку зовнішня умова, а потім внутрішня.  При цьому можемо побачити, що у внутрішній умові немає блоку else.  Насправді він не обов’язковий як у внутрішній, так і у зовнішній умові (так і в будь-якій іншій умові), я просто вирішив його не писати, для того, щоб ви про це дізнались.

Або  застосувати додатковий логічний оператор.

до змісту ↑

&& (AND).

Цей оператор “дає” true тільки якщо обидві його частини еквівалентні true.

Переваги відчутні. Less code – less bugs. Але це не означає, що завжди потрібно використовувати саме таку конструкцію, адже ситуації бувають різні.

 

Добре…модернізуємо нашу ситуацію. Уявимо собі, що ми нам достатньо, щоб виконалась тільки одна з двох умов, тобто або тільки зелене світло, або просто безпечно і це знак для нас, що ми можемо іти через дорогу. Як тут бути?

до змісту ↑

|| (OR).

Тут в гру вступає OR.

Цей оператор “дає” true коли хоч одна з частин еквівалентна true.

Хоч isSafety = false, ми все одно отримаємо в консолі ‘go’.

до змісту ↑

ELSE IF.

Інша ситуація : Є світлофор і він має зелений, жовтий і червоний кольори. І ми розуміємо, що звичайним if else вже не обійтись, адже він спроможний обробити тільки 2 варіанти розвитку подій. А нам потрібно мінімум 3. Що робити? Для цього ми використовуємо if else if.

 

Змінна color почергово порівнюється з кожним значенням і у разі збігу буде виконаний відповідний блок.

до змісту ↑

SWITCH.

Блок switch –  являє собою аналог if.

 

У випадку, якщо значення нашої змінної status буде збігатися зі значенням case`у, тоді цей case буде виконаний. А для чого тут break? Оператор break – оператор який зупиняє виконання коду. Він не дає наступному коду виконуватись. Спробуйте запустити його без brake і подивіться, що буде. У свою чергу, в кожному блоці case (або default) може існувати if або switch.

 

 

 

Поділитися