【问题标题】:My code doesn't load (stuck at do/while loop?)我的代码没有加载(卡在 do/while 循环?)
【发布时间】:2013-05-05 16:12:09
【问题描述】:

我一直在尝试制作“一个程序”,它基本上一直在“掷骰子”(随机化值)直到你得到蛇眼,当你这样做时,它应该显示掷骰子的次数。但是,它不加载。我做错了什么?

var countRolls = 0;
do {
var die1 = (Math.random() * 6) + 1; 
var die2 = (Math.random() * 6) + 1;
++countRolls;
} while (die1 != 1 || die2 != 1);
console.log(countRolls);

我尝试在 Chrome/Firefox 中打开它,但它会永远加载,我将无法打开控制台。在 JSFiddle 中尝试过,它变得没有响应。

【问题讨论】:

  • 你是如何加载它的?
  • 哦,对了,我试过在Chrome/Firefox中打开它,它只会说它一直在加载,我将无法打开控制台。在 JSFiddle 中尝试过,它会变得没有响应
  • 尝试在每次循环中记录die1die2的值,我想你会明白为什么。
  • Math.random() 不返回整数。所以,这不太可能返回 1。所以,你处于无限循环中!
  • 感谢大家的帮助。

标签: javascript while-loop do-while dice


【解决方案1】:

因为Math.random() 返回 double,所以 die1 和 die2 都为 1 的几率几乎为 0%

【讨论】:

  • 谢谢!不知道是双标。 Math.floor() 成功了!
【解决方案2】:

您的循环将永远不会结束,因为您将一个添加到随机函数并且停止条件只是测试不是 1,但这不会发生。

console.log(die1,die2); 添加到您的do {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多