在变量中生成随机整数

时间:2014-06-16 20:10:06

标签: javascript random

我需要生成一个值为最大值3的整数,它不能为0.

我是Javascript的新手,所以我试着这样做。

var x = 4;
var randomNumber1 = Math.floor(Math.random()*x);
var randomNumber2 = Math.floor(Math.random()*x);
var randomNumber3 = Math.floor(Math.random()*x);

while (randomNumber1 === randomNumber2, randomNumber1 === 0, randomNumber2 === 0){
var randomNumber2 = Math.floor(Math.random()*x);
} 

while (randomNumber2 === randomNumber3, randomNumber2 === 0, randomNumber3 === 0){
var randomNumber3 = Math.floor(Math.random()*x);
} 

while (randomNumber3 === randomNumber1, randomNumber3 === 0, randomNumber1 === 0){
var randomNumber3 = Math.floor(Math.random()*x);
} 
console.log(randomNumber1);
console.log(randomNumber2);
console.log(randomNumber3);

它仍显示0和相等的数字 我确定我不对,但我想我是正确的方式。

感谢帮助!

2 个答案:

答案 0 :(得分:0)

这是混淆代码的好方法。你可以使它更清洁,更具可读性:

Math.ceil(Math.random() * 3);// Scratch this, this can actually return 0.

Math.floor(Math.random() * 3 + 1);

答案 1 :(得分:-2)

Math.random()给出0到1之间的随机数.2 * Math.random()给出0到2之间的随机数,并舍入Math.round(2 * Math.random())给出值0,1和2.添加一个给出1,2和3,这是你要找的

var randomNumber = 1 + Math.round(2*Math.random());