如何为for循环中的变量赋值

时间:2018-01-18 19:48:35

标签: javascript

我试图构建一个简单的脚本,从1-6生成2个随机数(如骰子),然后将结果循环100次,每当其中一个场景为真时,将+1添加到表示的变量中每个选项中发生方案的次数,而不是在警报中显示结果。它似乎不起作用。哪里出错了?谢谢!

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

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

var playerOneWon = 0;
var playerTwoWon = 0;
var Tie = 0;



for (var i = 0; i < 100; i++) {

    if (calcDiceOne(i) > calcDiceTwo(i)) {
      playerOneWon = playerOneWon++;
    }

    else if (calcDiceOne(i) < calcDiceTwo(i) {
      playerTwoWon = playerTwoWon++;	
    }

    else if (calcDiceOne(i) === calcDiceTwo(i)) {
      Tie = Tie++;
    }
}

alert(playerOneWon , playerTwoWon , Tie)

1 个答案:

答案 0 :(得分:0)

您的代码存在多个问题。

  • 在此行中遗漏了结束)else if (calcDiceOne(i) < calcDiceTwo(i) {
  • calcDiceOnecalcDiceTwo是数字变量,而不是函数。你应该简单地在循环中移动随机化。
  • 警报仅接受一个参数(要提醒的消息)。如果您想要提醒所有结果,您应该格式化并连接它们,如下所示。
  • playerTwoWon = playerTwoWon++;什么也没做。 playerTwoWon++将返回当时playerTwoWon的任何内容,然后在内部递增它。然后将其设置回原始值。只需使用playerTwoWon++playerTwoWon = playerTwoWon + 1
  • 即可

见下面的修订代码:

var playerOneWon = 0;
var playerTwoWon = 0;
var Tie = 0;

for (var i = 0; i < 100; i++) {
    var diceOne = Math.random();
    var calcDiceOne = (diceOne * 6) + 1;
    calcDiceOne = Math.floor(calcDiceOne);

    var diceTwo = Math.random();
    var calcDiceTwo = (diceTwo * 6) + 1;
    calcDiceTwo = Math.floor(calcDiceTwo);
    
    if (calcDiceOne > calcDiceTwo) {
      playerOneWon++;
    }

    else if (calcDiceOne < calcDiceTwo) {
      playerTwoWon++;	
    }

    else if (calcDiceOne === calcDiceTwo) {
      Tie++;
    }
}

alert(playerOneWon + " " + playerTwoWon + " " + Tie)

相关问题