Теория JavaScript. ч.19. Линейность и Ветвление (разветвление) в функции (if, else, if else, «?»)
Предыдущие части:
3. Операторы, Операнды и Выражения.
4. Приоритет операторов, Ассоциативность, Глобальность и Локальность.
5. Переменные. Операции для назначения переменных
6. Поплавки (десятичные числа)
14. Что такое функция? Операция function.
15. Параметры и аргументы функции.
17. Область видимости, локальные и глобальные переменные
18. Логический тип данных: true и false

Обычно, функция и код в целом работают последовательно, т.е. линейно – когда все действия идут в четкой последовательности и друг за другом, без учета условий. То есть, это можно сравнить с прямой полосой. Весь код, зачастую, работает именно так.
Но иногда нам нужно, чтобы выполнялись различные действия, которые будут зависеть от условий. Для этого нам нужны всевозможные операторы, которые уточняют, при каких обстоятельствах работает то или иное условие, запускающее определенные действия. Это называется ветвлением в функции.
По факту, это выбор, известный нам со сказок: налево пойдешь, направо пойдешь, прямо упрешься. Но сами варианты уточнений всегда различаются.
1) Ветвление с одним вариантом – при таком варианте, вычисляется условие, которое должно быть истинным (true). Тогда в этом случае команда выполняется. Если значение ложное (false), то тогда код идет дальше, не выполняя эту функцию.
2) Ветвление с двумя вариантами – при таком варианте вычисляется условия истинные и ложные, и уже в зависимости от этого запускается либо первый вариант действий, либо второй. То есть, например, нам надо получить доступ к определенному сайту, и тогда в зависимости от введённых данных, доступ будет либо полноценный, либо ограничен (или в нем будет отказано). В этом случае все условия будут проверяться последовательно, пока не будет найдено истинное. Если оно найдено – то запустится первый вариант действий, прописанный в коде. Если оно все же ложное, тогда после поиска по всей функции, выполнится команда, которая должна была запустить второй вариант действий.
3) Различные ветвления – при таком варианте, вычисляются условия, которые подойдут для того, чтобы запустить определенную, прописанную команду. То есть, там может быть не 2 исхода, а столько, сколько пропишет программист. Например, не просто «Истина» или «Ложь», а «если значение a = q, то тогда выполняется z, а если a = e, то тогда u».
Есть некий нюанс, который нужно учитывать. Если в условиях встречается число 0, пустая строка ‘’, тип данных null, тип данных undefined и Not a Number (NaN, не число), то автоматически, язык программирования будет присваивать ответ false. Но это произойдет, если не будет никаких уточнений, при которых эти значения будут запускать определенную команду (т.е. тип различные ветвления).
Для того чтобы включить варианты разветвления, есть специальные операторы:
1) Оператор if – вычисляет условие в скобочках, и если оно истинно, тогда запускает команду. В переводе с английского, if обозначает «ещё».
2) Оператор else – включает тот вариант команды, который действует в случае, если условие ложно. В переводе с английского означает «иначе».
3) Оператор if else – включает те варианты, которые уже зависят от условий и прописаны программистом. Используется при различном ветвлении. Переводится «иначе ещё».
4) Оператор «?» – оператор определения переменной в зависимости от значения. То есть, если условие истинно, то тогда переменной присваивается 1 значение, если ложное, то 2 значение. При этом этот оператор может прописываться на протяжении всего кода. Но порой этот оператор заменяет оператор if и if else.
На самом деле, подобные разветвления характерны не только для JavaScript. В целом, работа с алгоритмами, во всех языках программирования схожа.

