比较值大小的switch语句

13

我想在我正在编写的一些简单代码中使用switch语句。

我试图将括号中的变量与<13>= 13的值进行比较。

使用Switch语句是否可行?

var age = prompt("Enter you age");
switch (age) {
    case <13:
        alert("You must be 13 or older to play");
        break;
    case >=13:
        alert("You are old enough to play");
        break;
}

尝试了精确的代码块吗? - J Santosh
6个回答

46

直接做不了,但是你可以间接地实现

试试这样做

switch (true) {
    case (age < 13):
        alert("You must be 13 or older to play");
        break;
    case (age >= 13):
        alert("You are old enough to play");
        break;
}

这里 switch 语句将始终尝试查找 true 值。它将切换到第一个返回 true 的 case。

假设年龄小于 13,那么该 case 就是 true,它将切换到该 case。


4

你可以使用if else语句来轻松实现与switch相同的效果,对吧?

if(age<13)
    alert("You must be 13 or older to play");
else
    alert("You are old enough to play");

1
这在我的情况下起作用:

var enteredAge = prompt("Enter your age");
let ageMoreThan13 = parseInt(enteredAge) >= 13;
let ageLessThan13 = parseInt(enteredAge) < 13;
switch (ageMoreThan13 || ageLessThan13) {
    case ageLessThan13:
        alert("You must be 13 or older to play");
        break;
     case ageMoreThan13:
        alert("You are old enough to play");
        break;
}

0

你可以使用一个条件(三元)运算符来代替。它接受一个条件,后面跟着一个问号(?),然后是一个表达式,如果条件为真则执行该表达式,否则执行另一个表达式。

这个运算符经常被用作 if 语句的快捷方式。

age >= 13 ? "You are old enough to play" : "You must be 13 or older to play";

0

使用 switch-case 可能有点傻,但为了完整性,我添加了一个使用 switch-case 的答案。

var age = prompt("Enter you age");
switch (age) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
        alert("You must be 13 or older to play");
        break;
    default:
        alert("You are old enough to play");
        break;
}

0

不要使用 switch,而是像这样使用嵌套的 if else

if (x > 10) {
    disp ('x is greater than 10') 
}
else if (x < 10){
    disp ('x is less than 10')
}
else
{
    disp ('error')
}

应该是 else if(带空格) - barbsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接