如何在交换机中正确写入条件?

时间:2017-11-06 06:59:24

标签: javascript

下午好! 为什么第一个选项工作 - 切换(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');

4 个答案:

答案 0 :(得分:4)

  

为什么第一个选项有效 - 切换(true)和第二个选项   不起作用 - 切换(a)?

根据documentation

  

switch语句计算一个匹配的表达式   表达式对case子句的值,并执行语句   与此案有关。

因此,在第一个选项中 true将与a < 10a > 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。当然,你应该施放truea或使用a = +aparseInt()

以下是您可能要做的事情:

parseFloat()

答案 3 :(得分:-2)

您需要将用户输入从字符串转换为整数,如此

a = parseInt(a)