关于一道简单的java基础题的疑惑
当在命令行输入:java myprog good morning 运行以下代码,输出结果是( )。
public class myprog{
public static void main(String argv[])
{
System.out.println(argv[2]);
}
}
A. myprog
B. good
C. morning
D. Exception raised: "
java.lang.ArrayIndexOutOfBoundsException: 2"
此题的答案为什么不是C而是D呢?
------解决方案--------------------数组的下标是从0开始的
------解决方案--------------------argv数组的长度是2,即argv[0]="good",argv[1]="morning", argv[2]就
数组越界了。
------解决方案--------------------答案必须是D
java myprog good morning
args.length == 2 ;
args[0] = "good";
args[1] = "morning";
java 的数组下标是从0开始 和c++一样
而你使用 args[2] 当然要报数据越界啦
------解决方案--------------------数组下标是0开始,这里数组的长度是2。所以只有
args[0],args[1]
------解决方案--------------------argv数组的实际长度是2,下标从0开始计,即argv[0]="good",argv[1]="morning", 没有argv[2],所以提示数组越界。
------解决方案--------------------数组的边界问题
------解决方案--------------------java myprog good morning
首先 java myprog 这两个词 是为了运行你的java程序。这个知道吧
然后空格, 后面可以参数,就是args这个数组里的参数。
args.length == 2 ;
args[0] = "good";
args[1] = "morning";
所以不能使用args[2]