Можно ли использовать математический оператор в выражении-переключателе? - PullRequest
3 голосов
/ 30 октября 2011

У меня проблема с использованием математического оператора в выражении-переключателе.

Вот так выглядит мой код:

var x = 18;
var y = 82;

var result = x + y;

switch(result) {
case "200":
document.write("200!");
break;
case "500":
document.write("500!");
break;
case "100":
document.write("100! :)");
break;
default:
document.write("Something's not right..");
}

Объяснено :переменная "result" имеет значение 100. Я пытаюсь использовать это значение с оператором switch, но оно просто не работает.

Я также пытался использовать само уравнение в качестве выражения switch, но это тоже не работает.

PS : Я только начал с JavaScript.Спорим, я что-то упустил очевидное ...

Ответы [ 3 ]

5 голосов
/ 30 октября 2011

Измените «100» на 100, и это работает.Параметр switch должен использовать семантику ===, что означает «тип и значение равны» против ==, что попытается сопоставить типы и сравнить их.это работает

enter image description here

4 голосов
/ 30 октября 2011

Вы сравниваете число 100 со строкой "100", это не то же самое.Попробуйте это:

var x = 18;
var y = 82;

var result = x + y;

switch(result) {
case 200:
document.write("200!");
break;
case 500:
document.write("500!");
break;
case 100:
document.write("100! :)");
break;
default:
document.write("Something's not right..");
}
3 голосов
/ 30 октября 2011

Вы используете строки в своих инструкциях case. Уберите кавычки (") и все будет в порядке.

...