【发布时间】:2013-08-10 19:26:27
【问题描述】:
我的问题是:我是 JavaScript 新手,我想了解“ if { ”和“ else if { ”语句之间的区别。到目前为止,我找到的唯一答案与后来继承我的代码的人有关,显然没有人会继承我的课程项目!我的问题具体是这样的:
我正在 codecademy 上做石头剪刀布游戏项目。我的 Math.random() 方法产生一个随机数。我首先实现了我的代码 if (computerChoice
及其替代方法:
if (computerChoice > 0.67){...... Which checked out and produced a viable answer.
在它的建议中,它使用了 else if 语句。我的具体问题是在任何一种情况下,我基本上都设置了一个低范围和一个高范围,剩下的代表中间。 Else 表示不是先前的条件。但是,如果我的条件一秒钟 if 已经在逻辑上排除了先前的答案(无论如何都必须在 else if 替代方案中在逻辑上排除)到底有什么区别,为什么要使用 else if/when would else if 是必要的?
我的代码如下:
选项一(否则):
var userChoice = prompt("do you want rock paper or scissors?");
var computerChoice = Math.random();
if (computerChoice <= 0.33){
computerChoice = "rock";
}
else if (computerChoice >= 0.67){
computerChoice = "scissors";
}
else {
computerChoice = "paper";
}
console.log(computerChoice);
选项二(2 if's):
var userChoice = prompt("do you want rock paper or scissors?");
var computerChoice = Math.random();
if (computerChoice <= 0.33){
computerChoice = "rock";
}
if (computerChoice >= 0.67){
computerChoice = "scissors";
}
else {
computerChoice = "paper";
}
console.log(computerChoice);
【问题讨论】:
-
你的第二个选项永远不会产生“摇滚”
-
如果他使用第二个值来保存所选实体的名称,那将是正确的——但是一旦他将字符串值分配给 computerChoice,所有后续比较都将返回 false。跨度>
-
@basilikum - 我不明白,我尝试了这两种方法,并且都随机生成了所有三个答案......
-
这两个 if 语句没有连接。因此,对于第一个
if语句,您分配“rock”或不分配“rock” - 这是两种可能性。在第二个 if-else 块中,您可以指定“剪刀”或“纸”,但它绝对是其中之一。 jsfiddle.net/N9bP9 -
@KevinNielsen 并且如果“所有后续比较都将返回 false”,则出现
else块并将值更改为“纸”。
标签: javascript if-statement conditional