在两个常量值之间为整数赋值?

时间:2016-07-27 09:52:33

标签: java android random integer

假设我有3个整数:

int a, b, c;
b = 25;
c = 10;

现在我希望a为25或10,但随机不是:

a = b;

我想要if语句中的内容:

a = b || c;

我怎样才能实现它?

4 个答案:

答案 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;
}