我正在使用for循环来创建13的前400个倍数,我正在尝试将这些数字存储到数组中。具体问题在第5行。我知道这段代码正在使程序写入数组的第一个元素,这导致了问题。有什么方法可以按顺序存储数字吗?
checked
答案 0 :(得分:5)
数组索引从0开始,因此将int dex = 1
更改为int dex = 0
。此外,您应该使用计数变量dex
写入正确的数组索引:
public static void main(String[] args) {
int[] thirteenMultiples = new int[400];
for (int dex = 0; dex < thirteenMultiples.length; dex ++) {
int multiples = 13 * dex;
thirteenMultiples[dex] = multiples;
System.out.println(Arrays.toString(thirteenMultiples));
}
}
顺便说一下:Arrays.toString(thirteenMultiples)
在每次迭代时都是一项非常昂贵的操作(尝试自己编写这个方法,你就会明白我的意思)。也许你应该只打印thirteenMultiples[dex]
的当前值并在循环结束后打印出数组。我认为你现在只是测试和尝试的东西,但我认为从一开始就记住这些事情是好的;)
答案 1 :(得分:4)
13thMultiples [dex]代替13个多个[0],因为每次循环运行时dex等于索引。对于ex - 对于dex = 1,您在[1]处存储多个,然后它增加到2然后它变为[2]并且您将下一个倍数存储在2.因此它将每个新值存储在新索引处。
当数组从0索引开始时,也从0开始执行dex。
答案 2 :(得分:0)
我想在这种情况下,最好使用List而不是数组。您的代码看起来更干净
public static void main(String[] args) {
List<Integer> thirteenMultiples = new ArrayList<Integer>;
for (int dex = 0; dex < 400; dex ++) {
thirteenMultiples.add(13 * dex)
}
System.out.println(thirteenMultiples);
}