javascript如果elseif不工作

时间:2013-10-08 06:49:57

标签: javascript if-statement

帮助! if / elseif / else代码块不起作用!当代码到达提示“你会做什么?”无论你键入什么,你都会收到所有警报。当您键入不在if块中的命令时,它应该显示为空白,如果您键入了R,L或M,则会给出警告。键入F应该不会给出警报。

while (Room = 1) {
    var Choice = prompt ("What will you do?");
    if (Turn = "Start");
    {
        if (Choice = "F");
    {
        Turn = "1";
    }
    else if (Choice = "R");
    {
        alert ("You cannot do that...");
    }
    else if (Choice = "L");
    {
        alert ("You cannot do that...");
    }
    else if (Choice = "M");
    {
        alert ("    1"+'\n'+"    1" + '\n' + "221" + '\n' + "    X");
    }
    else 
    {
        alert ("You cannot do that...")
    }
}

7 个答案:

答案 0 :(得分:5)

使用==代替=。单个等于是变量赋值,并根据赋值的结果进行求值。 ==用于等式测试。

答案 1 :(得分:2)

从if和else if语句中删除;

  

;代表声明的结尾

此外,您无法使用=作为比较操作,而是{@ 1}}或==(严格比较),如@Andy所述。

===

但我建议您使用 while (Room == 1) { // Actually your code fails at the beginning itself. 来处理您的情况。

答案 2 :(得分:1)

如果你写“=”单一等于意味着为该变量赋值。 因此,您应该将“=”单一等于“==” Double等于条件目的。

如果没有结束“;” Javascript中需要半结肠。删除它。

我已经更新了以下内容,请尝试一下。

while (Room == 1) {
    var Choice = prompt ("What will you do?");
    if (Turn == "Start")
    {
        if (Choice == "F")
        {
            Turn == "1";
        }
        else if (Choice == "R")
        {
            alert ("You cannot do that...");
        }
        else if (Choice == "L")
        {
            alert ("You cannot do that...");
        }
        else if (Choice == "M")
        {
            alert ("    1"+'\n'+"    1" + '\n' + "221" + '\n' + "    X");
        }
        else 
        {
            alert ("You cannot do that...");
        }
    }
}

答案 3 :(得分:0)

在所有if-elseif语句之后你有一个分号。因此,无论if中的布尔值是什么,if块都是空的。只需删除分号就可以了。

有了这个:

if(1 == 1);
{
    alert('Nope');
}

由于分号结束if。

,因此始终执行if语句后的块
if(1 == 1)
{
   alert('Yup');
}

作品。

答案 4 :(得分:0)

删除;if循环末尾的分号else if

并使用==比较字符串,而不是=

用这个替换你的代码

while (Room = 1) { //here Room is int variable
  var Choice = prompt ("What will you do?");
  if (Turn == "Start")
  {
    if (Choice =="F")
    {
      Turn = "1";
    }
    else if (Choice == "R")
    {
      alert ("You cannot do that...");
    }
    else if (Choice == "L")
    {
      alert ("You cannot do that...");
    }
    else if (Choice == "M")
    {
      alert ("1" + '\n' + "1" + '\n' + "221" + '\n' + "X");
    }
    else 
    {
      alert ("You cannot do that...")
    }
}

答案 5 :(得分:0)

Java脚本不考虑单个'='它与'=='

一起使用
try
if (Turn == "Start");

Instead of
if (Turn = "Start");

答案 6 :(得分:-1)

另外,除了使用严格比较之外,我强烈建议在if(...)之后不在新行中写左大括号:

像:

if(...){

而不是:

if(...)
{

原因是JavaScript的内置分号插入,因此有时会产生无提示错误或意外行为。在其他一些编程语言中它并不重要,但在JavaScript中它确实如此。