下午好! 为什么第一个选项工作 - 切换(true),第二个选项不起作用 - 切换(a)?
首先:
var a= prompt('Enter value', '');
switch(true)
{
case a>10:
alert('a>10');
break;
case a<10:
alert('a<10');
break;
default:
alert('a===10');
第二
var a= prompt('Enter value', '');
switch(a)
{
case a>10:
alert('a>10');
break;
case a<10:
alert('a<10');
break;
default:
alert('a===10');
答案 0 :(得分:4)
为什么第一个选项有效 - 切换(true)和第二个选项 不起作用 - 切换(a)?
switch语句计算一个匹配的表达式 表达式对case子句的值,并执行语句 与此案有关。
因此,在第一个选项中 true
将与a < 10
或a > 10
匹配,但在第二个选项中,< em> a
是一个字符串可能与其中任何一个都不匹配。
答案 1 :(得分:2)
编辑: 我只是意识到OP要求区别而不是为什么它不起作用,抱歉误解了这个问题
它应该很好用
var a = prompt('Enter value', '');
switch (true) {
case (a > 10):
alert("a > 10");
break;
case (a < 10):
alert("a < 10");
break;
default:
alert('a == 10');
}
答案 2 :(得分:0)
这是因为last = arr[-1]
secondLast = arr[-2]
是arr = [[1, 2], [3, 4], [5, 6]]
// In JavaScript, to get 6:
lastJS = arr[arr.length - 1][arr[arr.length - 1].length - 1]
# In Python, simple:
lastPy = arr[-1][-1]
,与a > 10
一样,而true
则是switch(true)
,而switch(a)
不是a
。当然,你应该施放true
。 a
或使用a = +a
或parseInt()
。
以下是您可能要做的事情:
parseFloat()
答案 3 :(得分:-2)
您需要将用户输入从字符串转换为整数,如此
a = parseInt(a)