有条件的问题,因为如果[closed],结果始终是else

我正在尝试制作一个简单的程序,其中有5个掷骰子,而最后一个获胜的人数最多,问题是if / else if,因为显示的唯一结果是else if if,even虽然应该随机


我试过在一开始就不将变量设置为0,而是切换位置。


function RollDie() {


  Math.floor(Math.random() * 6);

  var diceRoll = Math.floor(Math.random() * 6) + 1;

}


var player1 = 0;

var player2 = 0;


player1 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();

player2 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();


if (player2 > player1) {

  text("player 2 has won", 180, 100);

} else if (player2 < player1) {

  text("player 1 has won", 180, 100);

}

我希望最终结果是随机的,但不是。始终是if选项


慕森卡
浏览 122回答 2
2回答

噜噜哒

您需要返回随机值。如果采用不带return语句的函数,则该函数undefined默认返回。将该值用于加法运算undefined,然后通过加法将其转换为数字,但失败了,您将获得该值NaN,这意味着您将获得一个非数字的数字。任何带有NaNreturn的数字相加,NaN即您为两个玩家获得的值。在这种情况下,NaN始终与和进行比较,false因此您永远不会获得成功的信息。function RollDie() {&nbsp; &nbsp; return Math.floor(Math.random() * 6) + 1;&nbsp; &nbsp; // ^^^}var player1 = 0;var player2 = 0;player1 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();player2 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();console.log(player1);console.log(player2);if (player2 > player1) {&nbsp; &nbsp; console.log("player 2 has won");} else if (player2 < player1) {&nbsp; &nbsp; console.log("player 1 has won");}console.log(undefined + undefined); // NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript