我在建立并编译了一个叫group2.java的文件
//通过命令行参数输入字符串
public class group2
{
public static void main(String[] args)
{
if(args[0].equals("a"))
{
System.out.print("Hello!");
}
else if(args[0].equals("b"))
{
System.out.print("Goodbye!");
}
for(int i=1;i<=args.length;i++)
{
System.out.print(" "+args[i]);
}
System.out.println("!");
}
}
并将group2.java文件放在了C盘根目录下。
然后在DOS里C盘根目录下输入javac group2.java -回车
java group2 a my friend
结果输出
Hello! my friendException in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
ion: 3
at group2.main(group2.java:16)
然后我把程序改成了
public class group2
{
public static void main(String[] args)
{
if(args[0].equals("a"))
{
System.out.print("Hello!");
}
else if(args[0].equals("b"))
{
System.out.print("Goodbye!");
}
//for(int i=1;i<=args.length;i++)
//{
// System.out.print(" "+args[i]);
//}
System.out.println("!");
}
}
按照刚才的程序操作后,输出变成了Hello!!
我想问一下没改之前最后应该显示的那个感叹号哪去了?
[code="java"]for(int i=1;i<=args.length;i++)[/code]
Java里数组的下标是从0到length-1的,这里for循环的条件应该是i < args.length而不能有等号,不然下标在i等于args.length的时候就越界了。
没改之前,数组越界,虚拟机退出,此时程序没有跑完,所以!不见了。