这是我的代码:
import java.util.*;
public class RandGen
{
Random rd;
static final int SIZE = 1;
int[] result = new int[SIZE];
public RandGen(int seed)
{
rd = new Random(seed);
for(int i=0;i<SIZE-1;i++)
{
result[i] = rd.nextInt((int) Math.pow(10,9)+1);
}
}
}
您可以更改SIZE常量以获得更大的数组大小,但Random rd.nextInt将始终生成第一个数字为0。
答案 0 :(得分:7)
问题在于你的for
循环,你的逻辑测试基本上说&#34;只要0小于0&#34;增量i
。 SIZE
为1,您将SIZE-1
等于0。
编辑正如 T.J所述。下面是Crowder 和 JB Nizet ,for
循环从不设置数组中最后一个元素的值,因为它只会运行SIZE-1
元素,并且永远不会输入循环。
答案 1 :(得分:2)
我在这里看到两个问题:
答案 2 :(得分:0)
如果您使用的是大小为SIZE
的数组,则其位置位于0..SIZE-1
区间。然后,要遍历数组中的所有值,for
循环应为for(int i=0;i<SIZE;i++){}
。由于int i=0;i<SIZE-1
和SIZE
等于1,程序永远不会进入for循环。如果您有一个更大的SIZE
,for循环将永远不会触及数组的最后一个索引。