我正准备参加Oracle SE7联合考试,我对学习指南中的这个示例问题感到困惑:
给定数组的下列声明,哪条语句将显示数组的每个元素?
int arr[] = {1,2,3,4,5};
a. for(int n : arr[]) { System.out.println(n); }
b. for(int n : arr) { System.out.println(n); }
c.for(int n=1; n < 6; n++) { System.out.println(arr[n]);}
d. for(int n=1; n <= 5; n++) { System.out.println(arr[n]);}
答案键给出b、c和d作为正确的答案。然而,在我看来,只有b是正确的,因为c和d都将开始在arr1而不是arr上索引数组。
这是答案中的错误吗?
谢谢你的帮助。
发布于 2013-04-10 09:03:27
B是唯一一个在我看来对的人。
C&D都从1开始(而不是0),如果我的计数正确,则会抛出和索引超出界限的异常。
我认为这是一个错误的答案。
发布于 2013-12-20 19:44:45
巧妙地思考,就像考试的作者一样,C&D至少会在数组中显示4个元素,但随后会得到一个异常。所以他们仍然不能满足要求。
https://stackoverflow.com/questions/15921346
复制相似问题