我需要生成一个值为最大值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和相等的数字 我确定我不对,但我想我是正确的方式。
感谢帮助!
答案 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());