为什么我不能在这里使用else语句来获取javascript?

时间:2014-07-11 02:15:23

标签: javascript

为什么我一直收到错误,意外的其他令牌?

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];

if (prize <= 3 && prize >= 1);{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else (door === undefined); { alert("not a door"); }

3 个答案:

答案 0 :(得分:3)

不要在if和else语句之后放置分号。只在陈述结尾处使用它们。此外,您需要使用else if而不是else来检查另一个条件表达式。您还需要检查door - 而不是prize - <= 3>= 1是否如此:

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];

if (door <= 3 && door >= 1)
{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else if (door === undefined) 
{ 
    alert("not a door"); 
}

顺便说一句,看起来你应该摆脱else if (door === undefined)并将其替换为else。我还建议将door解析为整数。

答案 1 :(得分:1)

因为您正在使用else的条件。如果else条件不满足,则if意味着全部捕获。根据您的需要,使用else if

var PRIZES = ["a new car", "a broken stapler", "a refrigerator"];
var door = prompt("Choose a door number (1,2,or3)");
var prize = PRIZES[door - 1];
if (prize <= 3 && prize >= 1);{
    alert("you have won " + prize.toUpperCase() + "!!");
}  
else if (door === undefined) {
    alert("not a door");
}

答案 2 :(得分:0)

我认为我们应该把它简单地说成这样的

if () {

} else {

}

if () {

} else if () {

} else if () {

} else () {

}
没有半冒号;在()之后,实际上你很可能只是跳过javascript中的所有半冒号,因为它会自动添加,我通常只在一个js文件的开头放一个这样的

;(function(){})()

你需要的另一个时间是循环,

for ( ; i < len; i++) {}