我这里有一些奇怪的情况,我想你可以帮助我。我有一个 int 数组,其中填充了从 1 到 10 的数字。我想从这个数组中生成随机数并将其保存到另一个 int 数组中。我使用 Random 类来选择任何数字,因为随机抛出 0 我也像这样修改它(所以它抛出从 1 到 10 的数字)
randNum = rand.nextInt(numbers.length-min+1)+min;
以下代码确保如果它生成相同的随机数,它会跳过它。程序实际上正在运行,我正在另一个数组中随机放置从 1 到 10 的数字。这就是我想要的。但有时我会错过 1 - 10 之间的一个数字,而我会得到零。为什么??
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
int[] usednum = new int[10];
Random rand = new Random();
int randNum;
int min = 1;
for (int x = 0; x<numbers.length; x++) {
for (int i = 0; i<usednum.length; i++) {
randNum = rand.nextInt(numbers.length-min+1) + min;
for (int f = 0; f<usednum.length; f++) {
if (usednum[f] == randNum) {
break;
} else if (usednum[f] == 0) {
usednum[x] = randNum;
}
}
}
}
for (int c = 0; c<usednum.length; c++) {
System.out.println(usednum[c]);
}