两个if / else语句都被触发

时间:2016-12-20 15:24:18

标签: javascript

var game = "play"
var movie = "watch"
var userInput = prompt ("What do you want to do?"); {
  if (userInput === game) {
    if(Math.random <= 0.5) {
      console.log("play some mc")
    } else {
      console.log ("get some bf3 in ya")
    }
  }
  else (userInput === movie); {
    if (Math.random <= 0.5) {
      console.log("netflix is the way to go")
    } else {
      console.log("bit of youtube wouldnt hurt")
    }
  }
}

当我输入'play'时,两个语句都被触发。

但是,如果我输入'watch',则只会按预期执行else语句。

4 个答案:

答案 0 :(得分:3)

其他情况并非如此。

换句话说,在你的代码中说

else (userInput === movie);

对非感性陈述userInput === movie;进行评估,这就是&#39;其他&#39;的结束。部分。

然后评估/运行花括号之间的其余代码。

因此,要么将其设为else if语句 - 并删除分号 - 或删除&#34;条件&#34;如果你想要其余的代码运行,无论如何。

请参阅this JSFiddle example(稍加修改以允许玩它)。

var game = "play"
var movie = "watch"
var userInput = prompt ("What do you want to do?"); {
  if (userInput === game) {
    if(Math.random <= 0.5) {
     document.getElementById("result").textContent = "play some mc";
    } else {
      document.getElementById("result").textContent = "get some bf3 in ya";
    }
  }
  else if (userInput === movie) {
    if (Math.random <= 0.5) {
      document.getElementById("result").textContent =  "netflix is the way to go";
    } else {
      document.getElementById("result").textContent = "bit of youtube wouldnt hurt";
    }
  }
}

答案 1 :(得分:0)

更改部分

subchannels

else (userInput === movie); {

答案 2 :(得分:0)

您的陈述中else部分存在一些问题。首先,由于您遗漏了if的{​​{1}},因此括号中的条件不会被用作测试;它只是被评估为一种陈述。在右括号后用分号加强了这一点。在else if语句完成后,else之后的大括号中的代码只是被评估为代码块。所以不要这样:

if/else

你真的需要这个:

else (userInput === movie); {

答案 3 :(得分:-1)

您在外部其他声明中遗漏了if语句。 If (...) else声明不会评估括号中提供的任何条件。而If (...) else if (...)将会。

More on if...else statement.

所以替换

else (userInput === movie); {

else if (userInput === movie) {

以下是包含更改的修复代码段。

&#13;
&#13;
var game = "play"
var movie = "watch"
var userInput = prompt("What do you want to do?"); {
    if (userInput === game) {
        if (Math.random <= 0.5) {
            console.log("play some mc")
        } else {
            console.log("get some bf3 in ya")
        }
    } else if (userInput === movie) {
        if (Math.random <= 0.5) {
            console.log("netflix is the way to go")
        } else {
            console.log("bit of youtube wouldnt hurt")
        }
    }
}
&#13;
&#13;
&#13;