假设我有3个整数:
int a, b, c;
b = 25;
c = 10;
现在我希望a
为25或10,但随机不是:
a = b;
我想要if语句中的内容:
a = b || c;
我怎样才能实现它?
答案 0 :(得分:7)
if(Math.random() < 0.5)
a = 25;
else
a = 10;
Math.random()
会返回0到1之间的随机数,因此如果您想要有50%的可能性,请检查它是否小于(或大于)0.5。
答案 1 :(得分:4)
一种方法是通过花费时间来完成:
if(System.currentTimeMillis() % 2 == 0){
a=b;
} else{
a=c;
}
答案 2 :(得分:3)
@immibis'答案是实现这一目标的最简单方法。
为了测试性,我强烈建议您使用明确的Random
实例,而不是使用Math.random()
:
static int pickRandomValue(Random r, int b, int c) {
return r.nextInt(2) == 1 ? b : c;
}
这允许您注入模拟Random
实例,允许您在需要测试特定行为时修复该行为。非确定性测试是一种痛苦,应该避免。
答案 3 :(得分:2)
请尝试以下代码:
Random rand = new Random();
int myRandom = rand.nextInt(2); // will be 0 or 1
if (myRandom == 0) {
a=b;
} else {
a=c;
}