Знакомство с switch
JavaScript простым языком
Last updated
Was this helpful?
JavaScript простым языком
Last updated
Was this helpful?
Сегодня расскажу о продвинутом операторе 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
выведите игроку информацию о том, сколько очков опыта он заработал.
Разберем код ().