Ось де ми зупинились з нашою грою "підкидання монети"
Ми розпочинали з генерування випадкового числа між 0 та 1
і тоді заокруглюємо це число до найближчого цілого.
Отже. це дало нам число, що було 0 або 1.
І тоді ми проілюстрували нашу надреалістичну монету цим еліпсом,
що був фіолетовим або жовтим, в залежності яким було число.
І ось код в якому ми зробили це.
Отже, ми ввели "If integer" рівний 0 Додали код заливки, для фіолетовго кольору
в іншому випадку встановили жовтий.
і тоді ми малюємо монету ось тут.
Але тепер я вирішила, що насправді моя монета має 3 сторони.
Саме так, тристороння монета.
Отже, додадмо третю сторону.
Я планую почати з того щоб дадати число між 0 та 2,
тому, після його округлення я отримаю ціле число, що є 0, 1 або 2.
Але якщо поглянемо на наш код візуалізації то ми обчислюємо тільки 2 випадки тут.
Отже, "if integer" рівне 0, то фіолетовий в іншому випадку, жовтий.
Але зараз "інший випадок" може означати 1 або 2.
Але зачекайте, а що якщо я зроблю те саме, що ми робили раніше.
але всередині цього "else" блоку?
Отже, я просто зараз введу: "if integer" рівне 1
тоді встановити жовту заливку як і було раніше.
"else" ми встановимо колір нехай буде червоний.
Червоний досить хороший.
Отже, це означає, що
"if integer" рівне 0 тоді встановимо фіолетовий колір
в іншому випадку якщо 1 то жовтий
в іншому випадку, що означає
якщо число не 0, і не 1. тоді це повинно бути 2, ми зробимо червоний колір.
Я нажму перезапустити декілька разів. Це працює!
Отже, якщо б я хотіла додати більше сторін до моєї монети
я можу повернутись сюди, і ввести від 0 до 3, а тоді далі до блоку "else"
і додати більше "if else" і так далі аж
до того поки матиму незліченну кількість таких блоків.
І тільки тоді я зрозумію, що цей код огидний! Тобто неохайний!
Код повинен читатись легко і бути красивим а не потворним на скільки це можливо.
Отже, ось, що ми збираємось зробити:
Кожний раз коли у вас є тільки один оператор "if"
або "if/else" оператор всередині "else" блоку,
це означатиме, що ми не збираємось щось робити за межами цих блоків
ми не встановимо колір для обведення,
ми не маємо більше "if" операторів зовсім нічого.
Все, що ми маємо це один "if" оператор і можливо він йде разом з "else" блоком.
Потім ми можемо поєднати цю умову з попреденім рядком
і ввести, "else if integer" рівний 1 то задати заливку жовтим кольором.
І тоді цей останній "else" блок ніде не приставлений,
і функціонує сам по собі в самому кінці.
Чудово! Отже, те що тепер це означає, це
якщо "integer" рівний 0 задати фіолетовий колір,
в іншому випадку якщо "integer" рівний 1 задати жовтий
в ще іншому випадку, якщо значення цих двох не істинні, тоді задати червоний.
я нажимаю перезапустити декілька разів, і ви можете бачити, що вона все ще працює.
Блискуче! І класно те, що ми можемо мати стільки "else-if" скільки захочемо
що дозволяє мені дуже просто додати більше сторін до моєї монети.
Отож, давайте зробимо це зараз: я зроблю число між 0 та 3,
і тоді додамо ще один "else" блок,
в якому введемо: "else if (integer === 2)"
і задамо колір, червоний як і раніше, отже можемо його таким і залишити.
І тоді цей останній блок коли "integer" буде рівним 3.
І зробимо цю сторону синьою. Чудово!
Окей.
Отже. для того щоб зробити це, вам завжди потрібно починати з оператора "if"
і тоді ви можете мати стільки "else-if" скільки захочете
і тоді цей останній рядок коду необов'язковий
Ми можемо зробити це без нього,
і тоді це є можливим, що всі ці будуть не істинними
то жоден з цих блоків не буде виконуватись
Але до тих пір поки ми маємо це там,
тоді один з цих блоків точно запуститься.
Класно? Тепер це той варіант в якому не має великого значення
якщо ви введете "if else-if else-if else,"
або просто використаємо звичайний старий оператор "if" як ми це робили спочатку.
Отже, якщо "integer" рівний 3.
І це через те, що це неможливо
щоб "integer" було рівне 0, а тоді також 1, 2, або 3.
Чудово. Таким чином, ці умови взаємновиключні.
Тільки один з цих блоків буде запущений у будь якому випадку
Але це не завжди так.
А, якщо ми постараємось зробити гру як ця без округлення до цілого числа?
Тому, я планую позбутись цієї частини де ми округлюємо число,
та іншу частину, де ми виводимо це на екран.
І зробімо декілька нових правил до моєї гри.
Отже, я все ще генерую число між 0 та 3,
додам більше міток на нашу числову пряму.
Отже, введемо, що якщо число опиняється між 0 та 1, то зробимо її фіолетовим.
Ой, вона не виглядає як "ф" взагалі. Ви зрозуміли суть. Гаразд.
І тоді якщо воно між 1 та 2, ми зробимо її жовтою.
І тоді якщо воно між 2 та 3, ми зробимо її червоною.
Чудово. Отже, поглянемо, що ми можемо зробити з "if" та "else-if".
Тому, ми можемо почати вводити якщо число менше за 1,
отже, якщо воно менше за 1,
і я знаю, що воно між 0 та 3, то число повинне бути в цьому діапазоні,
тоді я задам фіолетову заливку.
В іншому випадку, якщо число менше за 2.
Я можу задати жовтий колір заливки, 255
Та в іншому випадку задам заливку червоним.
Чудово! І все працює так як задумано.
Отже, якщо число було меншим за 1, тоді знову, у цьому діапазоні.
В іншому випадку, воно більше або рівне 1 але також менше 2.
отже, число знаходиться у цьому діапазоні, тому ми задамо жовтий колір
В іншому випадку, воно повинно бути більшим чи рівним 2.
Тоді число попадє в цей діапазон.
А ось випадок
в якому ми не можемо просто сказати, якщо число менше 2,
і якщо число менше 3
тому, що якщо число менше за 1, то воно точно менше за два
і воно точно буде меншим за 3.
Отже наша монета в кінцевому підсумку буде червоною.
І ось чому в даному випадку, це дійсно корисно використати "else-if"