在运行这段代码时,我得到了ArrayIndexOutOfBoundsException
。
public class Evensum {
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
int even[] = new int[num];
int sum = 0,j = 0;
String evennums = "";
//Insert your code here
for(j=0; j<=num; j++) {
if(num%2==0) {
even[j]=num;
sum=sum+num;
args[j]= Integer.toString(num);
}
evennums=String.join(",", args);
}
System.out.println(evennums);
System.out.println(sum);
}
}
5条答案
按热度按时间gpfsuwkq1#
这样不对它应该是:
为什么?假设
num
是5。在这一行之前,您将even
初始化为5。even
的索引为0、1、2、3、4。现在,使用
j<=num
,您试图访问索引5,该索引不存在,因此出现异常。此行将引发另一个异常。我假设您只从命令行传递一个参数,即
args[0]
。这意味着args
数组的大小为1,您不能向其添加更多元素。此外,向
args
数组添加/修改元素也不是一个好的做法。您应该为此创建一个新数组。vsdwdz232#
请通过避免
Integer.toString
和String.join
来找到更简单的代码版本来传递参数。简单的整数Arraylist
和添加的元素将做的伎俩。输出生成如下:
jjhzyzn03#
bgtovc5b4#
为什么初始化偶数数组的大小,如果它的实际长度是未知的。在这种情况下,最好使用ArrayList,它具有动态增长的特性。
就这样
mrzz3bfm5#
在eclipse中运行时,请遵循以下步骤:
右击class--> Run AS --> Run Configuration转到Arguments选项卡并将值传递为10单击Run Output:二四六八十三十