因此,这是人们可能会做的最简单的事情之一:
Random rng = new Random();
int a = rng.nextInt(10);
int b = rng.nextInt(10);
到目前为止,一切都很好。但是我们想避免 a 和 b 相等,所以我们很自然地这样做:
Random rng = new Random();
int a = rng.nextInt(10);
int b = rng.nextInt(10);
while (a == b){
b = rng.nextInt(10);
}
然而——令我非常非常惊讶的是——while 循环永远不会退出。绝不。
我知道,理论上,随机数可以有一个数字的无限序列。但是我已经让这段代码运行了 10 分钟,它还没有退出循环。
这是怎么回事?我在最新的 Linux Mint 上运行 JDK 6 Update 16。