运行此代码时,我得到了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);
}
}
for (j=0; j<=num; j++)
这是错误的。应该是:
for (j = 0; j < num; j++)
为什么?假设num
为5。在此行之前,您将even
初始化为5。even
的索引为0、1、2、3、4。
现在,使用j<=num
,您正在尝试访问不存在的索引5,因此是例外。
args[j]= Integer.toString(num);
此行将引发另一个异常。我假设您仅从命令行传递了一个参数,即
args[0]
。这意味着args
数组的大小为1,并且您不能向其添加更多元素。
而且,向args
数组添加/修改元素也不是一个好习惯。您应该为此创建一个新数组。
替换