我通过一个按钮使用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;
}
答案 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一起使用。