首页 > 解决方案 > 为什么我的 Math.random 函数总是返回相同的值?

问题描述

我正在做一个石头、纸、剪刀的游戏,电脑会随机选择玩家。我创建了一个函数,它将随机选择一个数字(0、1 或 2),然后根据该数字返回一个石头、纸或剪刀的值。结果,我只能得到“纸”。

function getComputerChoice() {
  Math.floor(Math.random() * 3);
  if (0) {
    return 'rock';
  }
  else if (1) {
    return 'paper';
  }
  else if (2) {
    return 'scissors';
  }
}
console.log(getComputerChoice());


Expected: 0, 1, or 2
Actual result: always 1

标签: javascript

解决方案


你正在做Math.floor(Math.random() * 3),但随后丢弃了结果。然后在您的if陈述中,您正在测试数字是否0为真(不是),然后是数字是否1为真(它是),因此总是返回纸张。要修复它,您需要将随机数保存到变量中,然后将该变量与if语句中的可能数字进行比较。


推荐阅读