[АКАДЕМИЯ]: Изучаем JavaScript. Часть 2. Поток управления. If, else, else if, switch. Логические операторы и операторы сравнения.
Данный пост написан в рамках уникального образовательного проекта "Академия" от @ontofractal.
Оригинальный бесплатный интерактивный курс на английском языке здесь.
Ниже конспект курса на русском.
Часть 1. Изучаем JavaScript. Введение. Переменные.
Часть 2
- Поток управления.
- Операторы сравнения.
- Логические операторы.
Поток управления
В первой части мы познакомились с языком JavaScript, изучили типы данных, математические операторы, переменные и их свойства, а также научились выводить результаты работы нашей программы.
С помощью этих знаний мы уже можем писать простые программы. Однако, представим себе, что мы хотим написать игру, которая будет выполнять различные действия в зависимости от того, какую линию или какие решения выберет пользователь или программа. Например, программа симулирует подброс монеты. Если монета упадет орлом, то пользователь удваивает сумму ставки, если решкой, то проигрывает ставку. В зависимости от результата программа выполняет те либо иные действия, которые называются потоком управления.
Инструкции управлением потока , которые мы передаем программе для принятия решений базируется на каком - либо условии.
Если сказать простым языком, мы должны попросить нашу программу: "Если условие верно ( true
), выполни это действие, иначе, если условие ложно ( false
), выполни это действие."
Давайте посмотрим, как выглядит код на оригинальной картинке:
Condition that must evaluate to true or false
- условие, которое вычисляется как истинное или ложное ( в дальнейшем true или false соответственно )
If the condition is true this code block will run
- если условие true - выполняется этот блок кода
If the condition is false this code block will run
- если условие false - выполняется этот блок кода
Попробуем написать небольшую программу здесь:
Если переменная iLoveJavaScript
= true, то выполнится часть кода между первыми фигурными скобками {...}
, если же iLoveJavaScript
= false, то выполнится часть кода между фигурными скобками, следующими после else
Задание: Самостоятельно измените значение переменной iLoveJavaScript
на false и сравните полученный результат.
Операторы сравнения
Для того, чтобы усовершенствовать наши программы, давайте познакомимся с операторами сравнения.
>
больше
<
меньше
>=
больше или равно
<=
меньше или равно
===
равно
!==
не равно
Операторы сравнения всегда возвращают булев тип - true или false
Также обратите внимание, что оператор =
не является оператором сравнения. Как мы знаем из предыдущего конспекта, это оператор присвоения значения.
Задание: Попробуйте изменить значение переменной age
, а также попробуйте в деле другие операторы сравнения.
Внимательный читатель может задать закономерный вопрос: "А как же быть, если мы хотим использовать несколько условий?"
Для этого применяется конструкция else if
Логические операторы
В обычной речи мы часто применяем союзы "и" и "или", а также отрицательную частицу "не". Так и при написании кода мы можем пользоваться подобной логикой. Для этого существуют логические операторы:
&&
логический оператор "и" ( для того, чтобы сказать "Оба выражения должны быть true" )
||
логическое "или" ( для того, чтобы сказать "Одно из выражений должно быть true" )
!
логическое отрицание, "не" ( для того, чтобы сказать "Выражение должно быть противоположным тому, которым оно является на самом деле" )
else if
очень удобная и мощная конструкция. Однако, представим, что нам нужно написать не несколько инструкций при помощи else if,
а десятки, возможно, сотни. Тогда этот процесс будет довольно утомительным. В этом случае нам на помощь придет инструкция switch
Данная инструкция работает аналогично else if,
однако делает код гораздо проще в написании и понимании человеком.
- Переменная
x
проверяется на строгое равенство первому значениюcase
, затем второмуcase
и так далее. - Если соответствие установлено – выполняется ближайший
case
и далее, до ближайшегоbreak
(или до концаswitch
). - Если ни один
case
не совпал – выполняется (если есть) вариантdefault
.
Резюме
В данном конспекте мы познакомились с основными инструкциями, управляющими потоком нашей программы. Узнали, как пользоваться операторами сравнения и логическими операторами. В следующих уроках мы узнаем о том, как улучшить скорость написания, производительность и возможность чтения кода при помощи функций.
Что для меня было наиболее интересным и впечатляющим в данной неделе курса.
Больше всего впечатлило понимание того, на каких простых принципах базируется линия выполнения программы ( управляющий поток ). От небольшого веб - сайта до сложных игр и приложений. Как при помощи проверки различных условий изменяется поведение нашей программы.