@sw213

Как работает свитч-кейс?

Добрый день.
Как сделать код, представленный ниже - рабочим?
Не понимаю как два параметра прокидывать, пробовал через запятую.
Что не так делаю?
let a = 2;
let b = 2;
switch(a | b) {
  case a === b:
    console.log('1');
  break;
}
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
let a = 2;
let b = 2;
switch(true) {
  case a === b:
    console.log('=');
    break;
  case a > b:
    console.log('>');
    break;
  case a < b:
    console.log('<');
    break;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
switch нужен когда выражение может иметь несколько исходов. он создан для избавления от многих if else. в твоем выражении исход один. смысла в switch нет.
Ну если прям так хочется, то твой бред можно сделать так:
let a = 2
let b = 2
switch(a === b) {
  case true:
  console.log('1');
  break
}
Ответ написан
XOR2048
@XOR2048
Web & Browser extension developer
https://learn.javascript.ru/switch - вот тут подробно описан принцип работы конструкции switch-case, можно изучить.
Ответ написан
Комментировать
examix
@examix
Gutta cavat lapidem
switch - case

Принимает аргумент и выполняет строгое сравнение с требуемыми блоками условий, если условие сравнения в блоке истинно выполняется код в данном блоке до ближайшей директивы break. Если ни один блок сравнений не сработал, выполняется блок кода default.
let etalonCity1 = ['Самара',  'Архангельск'];
switch (arg) {
	case etalonCity1[1]:  // if (arg === etalonCity1[0])
		//to-do
		break;
	case etalonCity1[0]:  // if (arg === etalonCity1[1])
		//to-do
		break;
	default:
		//to-do
		console.log('Условия сравнения не совпали');
		break;
}


Вариант сравнения используя ' тернарный оператор '
a === b ? console.log('true') : console.log('false');

Если сравнение истина выполни то, что после вопросительного знака если ложно выполни то, что после двоеточия.
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
https://developer.mozilla.org/ru/docs/Web/JavaScri...
switch-case в js не умеет сопоставлять одновременно несколько значений.
Так что никак твой код рабочим не сделать.
Тем более, что не понятно, что он должен делать.

В общем случае switch разворачивается примерно вот так:

switch (expression) { // expression - это какое-то выражение. Тоесть значение одно.
  case variant1: // variant1 и variant2 - это тоже какое-то выражение. Тоесть тоже ровно одно значение.
    // ...
  break;
  case variant2:
    // ...
  break;
  default:
    // ...
  break;
}

// Вот в такое
const value = expression;
if(value === variant1) {
  //...
} else if (value === variant2) {
  //...
} else {
  // ...
}
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
if (a === b) {
  console.log('1');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы