Знакомство с switch
JavaScript простым языком
Сегодня расскажу о продвинутом операторе if
, а именно о конструкции switch
.
if
и switch
очень близки по своей сути, однако, в множестве случаев спора, кто лучше: тот или другой, победителем выйдет именно switch
.
Теперь подробнее об этой конструкции. switch
, фактически заменяет в коде несколько конструкций if
, что, порой, позволяет избегать лишних проверок (соответственно, существенно сократить код).
Вся конструкция switch
выглядит следующим образом:
Теперь сразу же разберем на примере:
Разберем код (живой пример).
Мы определили переменную arg
и записали в неё значение 5
.
Затем, эту переменную arg
мы как бы “скармливаем” конструкции switch
.
Конструкция берет значение переменной, которую ей скормили, и проверяет не совпадает ли это значение с одним из значений указанных в блоках case
. Если значение совпадает с каким-либо значением указанным после ключевого слова case
, то все действия выполнятся, которые указаны внутри этого блока case
до оператора break
. Оператор break
говорит JavaScript-у, что нужно выйти из конструкции switch
.
Т.к., значение переменной arg
равно 5
, то выполнится код, который написан внутри последнего блока case
, т.е. этот:
Блок default
, находящийся внизу конструкции switch
является необязательным. Он служит для того, чтобы код внутри него выполнился в том случае, если значение переменной скормленной в switch
не совпало ни с одним из значений, указанных в блоках case
.
Т.е, если сейчас взять и поменять значение переменной arg
, например, на 6
(в примере выше), то отработает блок default
.
Важные заметки:
switch
очень любит точность от программиста. Поэтому, если ты пишешь так:
Это означает, что ты ожидаешь от переменной именно числового значения 3
, а не строки '3'
. switch
просто не отработает так, как ты от него того ожидаешь, если ты не будешь думать о типах данных при сравнении.
Второй момент: кроме того, что блок default
является необязательным, в конце этого блока можно не писать оператор break
, т.к. этот код находится в конце конструкции switch
, а значит JavaScript так или иначе выйдет из этой конструкции.
Домашнее задание
Написать конструкцию switch
, которая будет проверять сколько опыта получил ваш герой в игре, в зависимости от количества убитых врагов.
Условия задачи:
За
1
врага ему начисляется100
очков опытаЗа
3
врагов ему начисляется400
очковЗа
5
врагов начисляется700
очковЗа
10
врагов начисляется1000
очков
Если же он набрал другое количество очков, то умножай количество убитых врагов на 100
очков.
Далее, запроси (с помощью функции prompt
), сколько игрок убил врагов, а потом с помощью alert
выведите игроку информацию о том, сколько очков опыта он заработал.
Last updated