【发布时间】:2014-04-29 02:29:14
【问题描述】:
TreeSet myNumbers = new TreeSet();
Random randGen = new Random();
for (int i = 1; i <= 16; i++) {
// number generation here
int randNum = randGen.nextInt(16 - 1) + 1;
for (;;) {
if (myNumbers.add(randNum))
break;
else
randNum = randGen.nextInt();
}
Toast.makeText(getApplicationContext(), "" + randNum, 100).show();
}
我想生成 1 到 16 之间的随机数,并且不应该重复相同的数字。
上面的代码给了我这样的输出:
2, 5, 7, 9, 1, 4, 10.4109446, -448831, 98824724, 11, 13, ...
我不知道为什么它给我的随机数不在 1-16 范围内,请帮帮我。
【问题讨论】:
-
您的代码似乎给您非整数结果,这表明您可能没有真正正确地诊断它。如果你真的能说服 Android 将 10.4109446 存储在
int中,我会感到惊讶。 -
@Vyger 无限循环
-
@blackbelt: 喜欢
while(true) {? -
@Vyger 关注此链接ehow.com/…
-
我认为是 '.'在输出中只是一个错字,它实际上是一个','。有可能吗?