所以我正在编写bat.com编写一个例子来练习我的期中考试其中一个问题,我卡住了。为什么他们在for循环条件语句中执行length-2 ..我不明白为什么我们必须减去2,也许这里有人可以快速解释它。我知道这是一个非常简单的事情,我没有得到。谢谢!
问题:`
public boolean array123(int[] nums) {
// Note: iterate < length-2, so can use i+1 and i+2 in the loop
for (int i=0; i < (nums.length-2); i++) {
if (nums[i]==1 && nums[i+1]==2 && nums[i+2]==3) return true;
}
return false;
}
解决方案:
{{1}}
答案 0 :(得分:2)
为了不抛出IndexOutOfBound异常。想象一下,如果你没有-2
并且你到达最后一个元素并且在代码中你试图访问索引处的元素(最后一个+2),那么它会抛出异常,因为你想要达到索引不可用。