基础模拟测试SCJP

时间:2014-03-04 22:04:50

标签: java

鉴于以下代码。此代码由“java Test 1 2 3 4”运行。结果是什么?

public class Test { 

public static void main(String args[]) {

for (int i = 1; i < args.length; i++) {

         System.out.print(i + " ");
        }
    }
}

A)编译失败。

B)在运行时抛出异常。

C)1 2 3

D)1 2

E)2 3

这是来自SCJP,答案是“1 2 3”。但它应该是“1 2”,因为args.length = 3,所以循环将执行2次,输出为“1 2”。如果我错了,请纠正我。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

args.length4"1""2""3""4"。因为这个循环以1开头,所以第一个参数1被有效地跳过,循环运行3次,而不是2次,也就是说,最后3个元素一次运行。

答案 1 :(得分:0)

args.length实际上是4.它怎么可能是3?

答案 2 :(得分:0)

是args length是4.对于数组,索引从0开始。你可能对此感到困惑。计算数组长度时,它以1而不是0开始。

答案 3 :(得分:0)

在这种情况下,

args.length = 4。数组的长度是其中的元素数 - 在这种情况下为4。由于计数器从1开始(并且应该在3处停止),它将打印1,2,3