例外 - 线程"主要" java.lang.ArrayIndexOutOfBoundsException

时间:2015-12-28 17:23:51

标签: java

public class Sum {

public static void main(String args[])
{
    int x,y,s; 
    x=Integer.parseInt(args[0]); 
    y=Integer.parseInt(args[1]);
    s=x+y;
   System.out.println("sum  "  +s);

} 
}

我想使用命令行agument打印两个数字的总和..但是它显示了一些错误:-exception in thread" main" java.lang.ArrayIndexOutOfBoundsException:0 ....

2 个答案:

答案 0 :(得分:1)

您需要传递命令行参数:

java Sum 0 1

在这种情况下,还建议检查长度:

int x,y,s;
if(args.length>=2){
  x=Integer.parseInt(args[0]);
  y=Integer.parseInt(args[1]);
  s=x+y;
  System.out.println("sum  "  +s);
}

考虑到程序的意图,您可能希望直接循环args[]数组,并将 所有 数字加起来而不仅仅是前两个数字:

int total = 0;
for (int i = 0; i < args.length; i++) {
  total = total + Integer.parseInt(args[i]);
}
System.out.println("Total: " + total);

命令行:java Sum 1 2 3 4 5会产生Total: 15

答案 1 :(得分:0)

从命令行运行此命令时,需要传入x和y的值:

java Sum 4 5

如果你是从eclipse运行它,你需要将它设置为在每次点击绿色“运行”按钮时传递这些参数。

Eclipse command line arguments

如果你没有传入任何内容,则数组“args”将为空。然后尝试访问数组中的第一个元素,但由于它是空的,因此会抛出一个ArrayIndexOutOfBoundsException。