打印 args[] 数组的大小 - 越界异常错误
Print Size of args[] array - out of bounds exception error
我明白为什么会抛出越界错误,但不明白为什么会出现这种情况。
在课本中,一些练习包括写代码给"print out its' command line argument"和"add its two command line arguements"
我写的两段代码是:
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
和
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
System.out.println(x+1);
}
}
对于两者,我得到相同的 "Exception in thread "main"j ava.lang.ArrayIndexOutOfBoundsException: 0
在 AddToCommandLine.main(AddToCommandLine.java:4)"
我不明白为什么。
提前致谢
如果您不将任何内容作为 cmd 行参数传递给程序,则 args[]
的大小将为 0
。您在这里尝试访问 [0]
即第一个元素和 [1]
即第二个元素。因此例外。
您需要使用 java
命令作为
传递参数
java AddToCommandLine 1 2
其中 AddToCommandLine
是 class 姓名,1
是 args[0]
,2
是 args[1]
你现在还没有传递任何参数,我想
你应该运行你的程序
java AddToCommandLine 5 4
这里是 command line arguments 是
的详细信息
我建议你这样写,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
如果你只是 运行 你的程序而不传递任何参数,那么 args[] 的大小将为 0。这里你试图访问 [0] 即第一个元素和 [1] 即,第二个元素。因此例外。
我建议你这样写,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
您需要使用 java 命令传递参数作为
java AddToCommandLine 1 2
如果你想从一些IDE运行,那么你必须去运行配置并在那里添加参数。
我明白为什么会抛出越界错误,但不明白为什么会出现这种情况。
在课本中,一些练习包括写代码给"print out its' command line argument"和"add its two command line arguements"
我写的两段代码是:
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
和
public class AddToCommandLine {
public static void main(String[] args)
{
int x = Integer.parseInt(args[0]);
System.out.println(x+1);
}
}
对于两者,我得到相同的 "Exception in thread "main"j ava.lang.ArrayIndexOutOfBoundsException: 0 在 AddToCommandLine.main(AddToCommandLine.java:4)"
我不明白为什么。
提前致谢
如果您不将任何内容作为 cmd 行参数传递给程序,则 args[]
的大小将为 0
。您在这里尝试访问 [0]
即第一个元素和 [1]
即第二个元素。因此例外。
您需要使用 java
命令作为
java AddToCommandLine 1 2
其中 AddToCommandLine
是 class 姓名,1
是 args[0]
,2
是 args[1]
你现在还没有传递任何参数,我想
你应该运行你的程序
java AddToCommandLine 5 4
这里是 command line arguments 是
的详细信息我建议你这样写,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
如果你只是 运行 你的程序而不传递任何参数,那么 args[] 的大小将为 0。这里你试图访问 [0] 即第一个元素和 [1] 即,第二个元素。因此例外。
我建议你这样写,
public class AddToCommandLine {
public static void main(String[] args)
{
if(args != null && args.length == 2)
{
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println(x+y);
}
else
System.out.println("Wrong number of command line arguments. This program require 2 arguments");
}
}
您需要使用 java 命令传递参数作为
java AddToCommandLine 1 2
如果你想从一些IDE运行,那么你必须去运行配置并在那里添加参数。