Javascript switch case all

JavaScript Switch Statement

The switch statement is used to perform different actions based on different conditions.

The JavaScript Switch Statement

Use the switch statement to select one of many code blocks to be executed.

Syntax

  • The switch expression is evaluated once.
  • The value of the expression is compared with the values of each case.
  • If there is a match, the associated block of code is executed.
  • If there is no match, the default code block is executed.

Example

The getDay() method returns the weekday as a number between 0 and 6.

This example uses the weekday number to calculate the weekday name:

switch (new Date().getDay()) <
case 0:
day = «Sunday»;
break;
case 1:
day = «Monday»;
break;
case 2:
day = «Tuesday»;
break;
case 3:
day = «Wednesday»;
break;
case 4:
day = «Thursday»;
break;
case 5:
day = «Friday»;
break;
case 6:
day = «Saturday»;
>

The result of day will be:

The break Keyword

When JavaScript reaches a break keyword, it breaks out of the switch block.

This will stop the execution inside the switch block.

Читайте также:  Как скрыть файл php

It is not necessary to break the last case in a switch block. The block breaks (ends) there anyway.

Note: If you omit the break statement, the next case will be executed even if the evaluation does not match the case.

The default Keyword

The default keyword specifies the code to run if there is no case match:

Example

The getDay() method returns the weekday as a number between 0 and 6.

If today is neither Saturday (6) nor Sunday (0), write a default message:

switch (new Date().getDay()) <
case 6:
text = «Today is Saturday»;
break;
case 0:
text = «Today is Sunday»;
break;
default:
text = «Looking forward to the Weekend»;
>

The result of text will be:

The default case does not have to be the last case in a switch block:

Example

switch (new Date().getDay()) <
default:
text = «Looking forward to the Weekend»;
break;
case 6:
text = «Today is Saturday»;
break;
case 0:
text = «Today is Sunday»;
>

If default is not the last case in the switch block, remember to end the default case with a break.

Common Code Blocks

Sometimes you will want different switch cases to use the same code.

In this example case 4 and 5 share the same code block, and 0 and 6 share another code block:

Example

switch (new Date().getDay()) <
case 4:
case 5:
text = «Soon it is Weekend»;
break;
case 0:
case 6:
text = «It is Weekend»;
break;
default:
text = «Looking forward to the Weekend»;
>

Switching Details

If multiple cases matches a case value, the first case is selected.

If no matching cases are found, the program continues to the default label.

If no default label is found, the program continues to the statement(s) after the switch.

Strict Comparison

Switch cases use strict comparison (===).

The values must be of the same type to match.

A strict comparison can only be true if the operands are of the same type.

In this example there will be no match for x:

Example

let x = «0»;
switch (x) case 0:
text = «Off»;
break;
case 1:
text = «On»;
break;
default:
text = «No value found»;
>

Источник

Конструкция «switch»

Конструкция switch заменяет собой сразу несколько if .

Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами.

Синтаксис

Конструкция switch имеет один или более блок case и необязательный блок default .

  • Переменная x проверяется на строгое равенство первому значению value1 , затем второму value2 и так далее.
  • Если соответствие установлено – switch начинает выполняться от соответствующей директивы case и далее, до ближайшего break (или до конца switch ).
  • Если ни один case не совпал – выполняется (если есть) вариант default .

Пример работы

Пример использования switch (сработавший код выделен):

Здесь оператор switch последовательно сравнит a со всеми вариантами из case .

Сначала 3 , затем – так как нет совпадения – 4 . Совпадение найдено, будет выполнен этот вариант, со строки alert( ‘В точку!’ ) и далее, до ближайшего break , который прервёт выполнение.

Если break нет, то выполнение пойдёт ниже по следующим case , при этом остальные проверки игнорируются.

В примере выше последовательно выполнятся три alert :

alert( 'В точку!' ); alert( 'Перебор' ); alert( "Нет таких значений" );

И switch и case допускают любое выражение в качестве аргумента.

let a = "1"; let b = 0; switch (+a)

В этом примере выражение +a вычисляется в 1 , что совпадает с выражением b + 1 в case , и следовательно, код в этом блоке будет выполнен.

Группировка «case»

Несколько вариантов case , использующих один код, можно группировать.

Для примера, выполним один и тот же код для case 3 и case 5 , сгруппировав их:

Теперь оба варианта 3 и 5 выводят одно сообщение.

Возможность группировать case – это побочный эффект того, как switch/case работает без break . Здесь выполнение case 3 начинается со строки (*) и продолжается в case 5 , потому что отсутствует break .

Тип имеет значение

Нужно отметить, что проверка на равенство всегда строгая. Значения должны быть одного типа, чтобы выполнялось равенство.

Для примера, давайте рассмотрим следующий код:

let arg = prompt("Введите число?"); switch (arg)
  1. Для ‘0’ и ‘1’ выполнится первый alert .
  2. Для ‘2’ – второй alert .
  3. Но для 3 , результат выполнения prompt будет строка «3» , которая не соответствует строгому равенству === с числом 3 . Таким образом, мы имеем «мёртвый код» в case 3 ! Выполнится вариант default .

Задачи

Напишите «if», аналогичный «switch»

Напишите if..else , соответствующий следующему switch :

Если совсем точно следовать работе switch , то if должен выполнять строгое сравнение ‘===’ .

Впрочем, для таких строк, подойдёт и обычное сравнение ‘==’ .

if(browser == 'Edge') < alert("You've got the Edge!"); >else if (browser == 'Chrome' || browser == 'Firefox' || browser == 'Safari' || browser == 'Opera') < alert( 'Okay we support these browsers too' ); >else

Обратите внимание: конструкция browser == ‘Chrome’ || browser == ‘Firefox’ . разбита на несколько строк для лучшей читаемости.

Но всё равно запись через switch нагляднее.

Источник

The «switch» statement

It gives a more descriptive way to compare a value with multiple variants.

The syntax

The switch has one or more case blocks and an optional default.

  • The value of x is checked for a strict equality to the value from the first case (that is, value1 ) then to the second ( value2 ) and so on.
  • If the equality is found, switch starts to execute the code starting from the corresponding case , until the nearest break (or until the end of switch ).
  • If no case is matched then the default code is executed (if it exists).

An example

An example of switch (the executed code is highlighted):

Here the switch starts to compare a from the first case variant that is 3 . The match fails.

Then 4 . That’s a match, so the execution starts from case 4 until the nearest break .

If there is no break then the execution continues with the next case without any checks.

In the example above we’ll see sequential execution of three alert s:

alert( 'Exactly!' ); alert( 'Too big' ); alert( "I don't know such values" );

Both switch and case allow arbitrary expressions.

let a = "1"; let b = 0; switch (+a)

Here +a gives 1 , that’s compared with b + 1 in case , and the corresponding code is executed.

Grouping of “case”

Several variants of case which share the same code can be grouped.

For example, if we want the same code to run for case 3 and case 5 :

Now both 3 and 5 show the same message.

The ability to “group” cases is a side effect of how switch/case works without break . Here the execution of case 3 starts from the line (*) and goes through case 5 , because there’s no break .

Type matters

Let’s emphasize that the equality check is always strict. The values must be of the same type to match.

For example, let’s consider the code:

let arg = prompt("Enter a value?"); switch (arg)
  1. For 0 , 1 , the first alert runs.
  2. For 2 the second alert runs.
  3. But for 3 , the result of the prompt is a string «3» , which is not strictly equal === to the number 3 . So we’ve got a dead code in case 3 ! The default variant will execute.

Tasks

Rewrite the «switch» into an «if»

Write the code using if..else which would correspond to the following switch :

To precisely match the functionality of switch , the if must use a strict comparison ‘===’ .

For given strings though, a simple ‘==’ works too.

if(browser == 'Edge') < alert("You've got the Edge!"); >else if (browser == 'Chrome' || browser == 'Firefox' || browser == 'Safari' || browser == 'Opera') < alert( 'Okay we support these browsers too' ); >else

Please note: the construct browser == ‘Chrome’ || browser == ‘Firefox’ … is split into multiple lines for better readability.

But the switch construct is still cleaner and more descriptive.

Источник

switch case в JavaScript

switch — это конструкция, которая позволяет выполнять инструкции исходя из значения выражений. switch является более наглядным способом сравнить выражение с несколькими вариантами описанными внутри, таким образом заменяя сразу же несколько if .

Синтаксис switch

выражение — значение, которое сравнивается с value1 , value2 , value3 и т.д.

инструкция — код который выполнится, если выражение соответствует valueN .

break — команда отвечающая на выход из конструкции switch .

default — необязательный блок, который выполняется, если выражение не соответствует ни одному valueN .

Конструкция switch может иметь один или более блоков case .

Пример №1

В данном примере а равно 3 и switch по порядку сравнивает это значение с вариантами из case . Пропустив case 1 и case 2 , switch остановится на case 3 и выполнит alert( ‘a = 3’ ) . break в свою очередь закончит выполнение потока кода в конструкции. Если бы a не равнялось 1, 2 или 3, тогда выполнился бы код из default .

Пример №2

Если не использовать break тогда выполнение кода пойдет дальше и будут выполнены инструкции в case и default расположенные ниже — проверки в свою очередь будут проигнорированы.

В данном случае в console будет выведено:

Пример №3

В switch и case значения могут быть выражены по разному.

 let a = 3 - 1; let b = 0; switch (++a) < case b + 1: alert('a = 1'); break; case b + 2: alert('a = 2'); break; case b + 3: alert('a = 3'); break; default: alert("a >3"); > 

Здесь в switch выражение принимает значение 3, что соответствует b + 3 , таким образом будет выполнено alert(‘a = 3’) .

Группировка case

Благодаря тому, что break является прямым указанием на выход из switch и без него выполнение кода идет дальше, появляется возможность построения цепочек case , которые используют один и тот же код (инструкцию).

Пример №4

Проверка равенства в switch

Проверка соответствия выражения и valueN происходит по правилам строгого равенства (===) — значения должны быть одного типа.

Пример №5

 let a = prompt("Введите число от 1 до 6"); switch (a)

Информация указанная в поле для ввода имеет тип данных строка, поэтому при вводе 2, 4, 6 выполниться alert(‘a четное число’) , так как в case ‘2’, ‘4’ и ‘6’ приведены в формату строки.

При вводе 1, 3, 5, выполниться default , так как в case 1, 3, 5 имеет формат число.

Итого

Конструкция switch сравнивает начальное выражение со случаями описанными внутри и исходя из этого выполняет нужный код. switch имеет в своем арсенале необязательные директивы break и default , что расширяет ее функционал и позволяет создавать цепочки case , а также задавать инструкции в том случае, если выражение не соответствует ни одному case .

Skypro — научим с нуля

Источник

Оцените статью