如何使用switch来比较值之间的值

时间:2017-09-22 19:13:32

标签: javascript switch-statement

我通过一个按钮使用XP Table来学习JavaScript,使用一个非常基本和简单的Level Upper系统,将一个名为Level的var设置为值并打印出来。

如何使用switch语句比较10到20之间的数字作为示例,并将名为Level的var返回值2(Lv.2)?

我已尝试使用"案例10 ... 20" (在另一种语言中有3个点),但它没有用!

我尝试使用if语句,但它无法正常工作。 :/

var Exp = 1;
var Level = 1;

function MaisExp()
{
    Exp++;
    document.getElementById("console").innerHTML = "+1 XP! | "+" Total: "+Exp+" xp points";
    VerLevel();
}

function VerLevel()
{
    switch(Exp)
    {
        case 0...10: ***< --- dots didn't work.***
        {
            Level=1;
        }
        case 20:
        {
            Level=2;
        }
        case 40:
        {
            Level=1;
        }
        case 80:
        {
            Level=1;
        }
    }
    document.getElementById("tela").innerHTML = Level; 
}

3 个答案:

答案 0 :(得分:1)

你可以使用这样的if语句:

if(Exp >= 0 && Exp <= 10)
{
}
else if(Exp <= 20)
{
}
else if(Exp <= 30) etc...

答案 1 :(得分:1)

case语句不适用于多个验证,每个案例只能处理一个。但是,您可以列出多个案例,例如:

switch(age){
  case 0:// If age is 0, it would enter here, since there is no "break;" it goes down to 1
  case 1:// Same as above
  case 2:// Same as above
  case 3:// Since this one has a break, this code is executed and then the switch terminates
    console.log('This toy is not right for this person');
    break;
  default:// This special case fires if age doesn't match any of the other cases, or none of the other cases broke the flow
    console.log('This toy is good for this person');
}

因此,在您的代码中,它应该类似于:

switch(Exp)
{
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
        Level=1;
        break;
    case 20:
        Level=2;
        break;
    case 40:
        Level=1;
        break;
    case 80:
        Level=1;
        break;
}

但是,既然你想要所有人都是1级,但是20,你也可以使用default案例,如下所示:

switch(Exp)
{
    case 20:
        Level=2;
        break;
    default:
        Level=1;
}

答案 2 :(得分:0)

虽然您已经有一个默认值1,但您可以将其带入该功能并检查level = 2的条件。

function VerLevel() {
    Level = 1;
    if (Exp === 20) {
        Level = 2;
    }
    document.getElementById("tela").innerHTML = Level; 
}

我建议将变量和函数的样式更改为以小写字母开头,因为带大写字母的函数表示instanciable / constructor函数,可以与new operator一起使用。