首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于一路简单的java基础题的疑惑

2012-06-23 
关于一道简单的java基础题的疑惑当在命令行输入:java myprog good morning 运行以下代码,输出结果是()。pub

关于一道简单的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]

热点排行
Bad Request.