import java.util.Arrays;
import java.util.Scanner;
public class Sieth {
public static void main(String[] args) {
Scanner bound = new Scanner(System.in);
int n = bound.nextInt();
int[] list = new int[n];
for (int f = 2; f <= n - 1; f++) {
list[f] = f;
}
System.out.println(Arrays.toString(list));
}
}
我想把数组从2填充到n,当我给n赋值20的时候,这个数组会包含不需要的几个0,而最后一个数字,实际上应该是20,却不是19,因为n减1,否则会导致异常,为什么?
具有输入和输出的会话示例:
20
[0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2条答案
按热度按时间jum4pzuy1#
您将从2开始循环。
因此循环中的第一个条目在list[2] = 2中;并且列表[0]和列表[1]被设置为0。
eqqqjvef2#
我想把数组从2填充到n
数组是零索引的,所以你只能把它们填充到
n - 1
索引。例如,如果我们有int[] arr = new int[3]
,那么可用的索引是:而
arr[3]
将导致索引越界异常。阵列将包含不期望的几个0
因为
int
的默认值是0
。如果您希望在此处看到null
,请改用Integer
。数组中的最后一个数字,实际上应该是20,而不是19
不,应该是19。因为
f <= n - 1;
-〉19 <= 20 - 1
为真,但20 <= 20 - 1;
为假,循环将终止。