[英]Java Array Index Out of Bounds Exception in For-loop
我正在制作一个对输入的数字运行公式的程序。 输入中的第一个整数描述行数,即公式中要使用的整数。 我正在通过计算答案并将其推入数组来解决这一问题。 但是,我在一个for循环中遇到了数组超出范围的异常,我不知道为什么。
这是我的主要方法:
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
int[] nums = {};
int lines = scan.nextInt();
for(int i = 0; i < lines; i++){
nums[i] = potFormula(scan.next());
}
System.out.println(nums);
}
数组具有固定大小,一旦分配就无法更改。 您正在将nums
初始化为{}
,这是一个空数组。 它的大小将始终为零。
相反,您可以使用:
int lines = scanner.nextInt();
int[] nums = new int[lines];
您的数组太小(它的元素为零)。 这是解决此问题的一种方法:
int lines = scan.nextInt();
int[] nums = new int[lines];
因为您事先知道大小,所以这种方法有效。 如果没有,则可以使用ArrayList<Integer>
。 阵列列表具有按需增长的能力。
您需要将nums数组初始化为行的长度,
像这样:
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
int lines = scan.nextInt();
int[] nums = new int[lines];
for(int i = 0; i < lines; i++){
nums[i] = potFormula(scan.next());
}
System.out.println(nums);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.