【发布时间】:2018-03-08 05:21:18
【问题描述】:
我是这个网站的新手,我的英语很差,请原谅我。
我的功能有问题:
public void generate(int[] array) {
int i=0;
boolean isvalid=true;
while (i < 5) {
int rng = (int)(Math.random()%100*100);
for (int j=0; j < 5; j++) {
if (array[j] == rng) {
isvalid=false;
System.out.println("duplicate: "+rng);
}
}
if (isvalid) {
array[i]=rng;
System.out.println(rng);
i++;
}
}
}
我需要用 0 到 100 之间的唯一随机数填充一个 5 大小的 int 数组。这是可行的,但有时会出错,并开始无限循环,并且由于某种原因我的编译器(netbeans)无法生成新的随机数号码,只是循环一些。 例如:
duplicate 62
duplicate 62
duplicate 64
duplicate 97
duplicate 97
duplicate 64
duplicate 97
duplicate 62
duplicate 64
duplicate 62
duplicate 64
duplicate 62
duplicate 97
duplicate 97
duplicate 56
duplicate 97
duplicate 62
duplicate 56
duplicate 56
duplicate 56
duplicate 64
duplicate 56
duplicate 62
duplicate 56
有人对我的问题有任何有用的提示吗? 提前致谢!
【问题讨论】:
标签: java arrays int unique infinite-loop