【发布时间】:2014-01-23 21:26:56
【问题描述】:
我目前正在学习 Javascript,并且正在学习石头、剪刀、纸教程。基于 Codeacademy 的相同教程,该站点上已经有几个查询。但是,我的查询是基于我的观点,因此我希望从 SO 社区获得一些反馈。
我的代码如下:-
var userChoice = prompt("Are you picking rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
console.log ("Computer picks" + " " +computerChoice);
var compare = function (choice1, choice2) {
if (choice1 === choice2) {
console.log ("You're both psychic. It's a tie!");
}
if (choice1=="rock") {
if (choice2 =="scissors") {
console.log ("Rock wins. You bad boy, you.");
}
if (choice2=="paper") {
console.log ("Paper wins. You noob") ;
}
}
if (choice1=="paper") {
if (choice2=="rock") {
console.log ("Paper wins. You bad boy, you.");
}
if (choice2=="scissors") {
console.log ("Scissors wins. You noob.") ;
}
}
if (choice1=="scissors") {
if (choice2=="rock") {
console.log ("Rock wins, you noob");
}
if (choice2=="paper") {
console.log ("Scissors wins. You bad boy, you.");
}
}
};
compare (userChoice,computerChoice);
我一直认为,在使用条件句时,应该只有以下两种情况:
- 单一条件,那么只需
if就可以了。 - 多个条件,则它必须是
if并以else或if、else if等以else结尾。
因此,我最初在 if (choice2=="paper") 的第二个嵌套条件语句中使用了 else。然后意识到逻辑是错误的,因为如果它是平局,它也会打印该字符串。
所以我考虑了一下,意识到如果我使用 if 而不是 else,它会起作用。它确实有效。但是,我只是不确定我的代码是错误的……还是不够理想。是吗?
此外,为了让它看起来更好(而不仅仅是充满if),我正在考虑用else if 替换if (choice1=="paper") 中的if。但是,我不知道如何结束下一个条件 - if (choice1=="scissors") { 。你会怎么做?
请原谅冗长的查询 - 我只是想确保我能很好地理解它。
谢谢
【问题讨论】:
-
您不必以
else结尾。if和else if其他都很好。 -
我明白了。如果情况值得,这很常见吗?
-
是的,这很正常。
标签: javascript if-statement coding-style