JavaScript 如果 elseif else 不起作用

javascript if elseif else not working

本文关键字:不起作用 else elseif 如果 JavaScript      更新时间:2023-09-26

救命!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...")
    }
}

使用 == 而不是 = 。单个等于是变量赋值,计算结果为赋值结果。 ==用于相等性测试。

从 if

和 else if 语句中删除;

;表示语句结束

此外,您不能使用=作为比较操作,而是=====(严格比较)@Andy提到。

while (Room == 1) { // Actually your code fails at the beginning itself.

但是,我建议您使用switch来处理您的情况。

如果你写 "=" 单个等于意味着为该变量赋值。因此,出于条件目的,您应该将"="单等于更改为"=="双等于。

如果别的没有结尾";"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...");
        }
    }
}

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

有了这个:

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

if-语句后面的块总是被执行,因为分号以 if 结尾。

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

工程。

Java scrip 不考虑单个 '=' 它适用于 '=='

try
if (Turn == "Start");
Instead of
if (Turn = "Start");

删除ifelse 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...")
    }
}

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

喜欢:

if(...){

而不是:

if(...)
{

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