各位大侠帮我看看哪错了!!!

时间:2022-11-07 20:22:06
程序:
public class Adder
{
  public static void main(String args[])
   {
     int a=Integer.parseInt(args[0]);
     int b=Integer.parseInt(args[1]);
     double c=Double.parseDouble(args[2]);
     double s=a+b+c;
     System.out.println("s="+s);
    }
}结:Exception in thread "main" java.lang.ArrayIndexOutOfBounds
Exvception:0 at Asser.main(Adder.java:5)
为什么会出错呢??????请各位大侠指点指点!!!!!!

11 个解决方案

#1


ArrayIndexOutOfBounds 数组越界啊
你传进去的参数是几个
不妨打印一下 args.length看看
而且第一个参数 args[0]好像是程序名吧

#2


java -classpath ./ Adder 1 2 3

在Eclipse里面调试时记得在“Run"栏里加参数

#3


传入参数有问题

#4


你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开

#5


这种情况是因为执行时你没有传入任何参数,所以在第5行args[0]处就报错了。

执行时候可以用java Adder 1 2 3
为了增加程序健壮性,也可以用一个if判断一下。
public class Adder
{
public static void main(String args[])
{
if (args.length < 3)
 return;
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);
double c=Double.parseDouble(args[2]);
double s=a+b+c;
System.out.println("s="+s);
}
}

#6


我也是刚学 java的  但是对于数组越界的问题已经遇到很多次了 来学习学习。

#7


引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder  12 13 21.9
s=46.9

#8


参数个数有问题~~~

#9


呜呜!!!!!!!太感谢各位了!!!!!!!

#10


引用 7 楼 xiaohuanjie 的回复:
引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder  12 13 21.9
s=46.9

就是这样的,运行时不传入参数,args[]数组的长度为0,,肯定会出现数组下标越界。

#11


引用 7 楼 xiaohuanjie 的回复:
引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder 12 13 21.9u
s=46.9

b不好意思啊!我想给分给你的但是我给错了!!!!!!!太对不住你了!!!!!!以后还有机会的!!!!

#1


ArrayIndexOutOfBounds 数组越界啊
你传进去的参数是几个
不妨打印一下 args.length看看
而且第一个参数 args[0]好像是程序名吧

#2


java -classpath ./ Adder 1 2 3

在Eclipse里面调试时记得在“Run"栏里加参数

#3


传入参数有问题

#4


你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开

#5


这种情况是因为执行时你没有传入任何参数,所以在第5行args[0]处就报错了。

执行时候可以用java Adder 1 2 3
为了增加程序健壮性,也可以用一个if判断一下。
public class Adder
{
public static void main(String args[])
{
if (args.length < 3)
 return;
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);
double c=Double.parseDouble(args[2]);
double s=a+b+c;
System.out.println("s="+s);
}
}

#6


我也是刚学 java的  但是对于数组越界的问题已经遇到很多次了 来学习学习。

#7


引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder  12 13 21.9
s=46.9

#8


参数个数有问题~~~

#9


呜呜!!!!!!!太感谢各位了!!!!!!!

#10


引用 7 楼 xiaohuanjie 的回复:
引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder  12 13 21.9
s=46.9

就是这样的,运行时不传入参数,args[]数组的长度为0,,肯定会出现数组下标越界。

#11


引用 7 楼 xiaohuanjie 的回复:
引用 4 楼 xiaohuanjie 的回复:
你从命令行传进去的参数不是3个,

改成3参数个就行了

每个参数之间用空格隔开


例如这样:

D:\>javac Adder.java

D:\>java Adder 12 13 21.9u
s=46.9

b不好意思啊!我想给分给你的但是我给错了!!!!!!!太对不住你了!!!!!!以后还有机会的!!!!