gpt4 book ai didi

java - 为什么 for 循环没有越界错误(Java)

转载 作者:行者123 更新时间:2023-12-01 21:09:54 33 4
gpt4 key购买 nike

我正在codingbat.com 上解决一个问题,并且很困惑为什么这个问题的解决方案没有给出索引越界错误。第一个 for 循环不会搜索超出传递数组长度的索引吗?

问题是这样的:

如果对于数组中的每一对相邻元素,至少其中一个是该值,我们会说该值在数组中“无处不在”。如果给定值在数组中随处可见,则返回 true。

这是我的工作解决方案:

public boolean isEverywhere(int[] nums, int val) {
boolean flag1 = true;
boolean flag2 = true;
for (int i = 0; i < nums.length; i += 2) {
if (nums[i] != val) flag1 = false;
}
for (int i = 0; i < nums.length - 1; i += 2) {
if (nums[i + 1] != val) flag2 = false;
}
return flag1 || flag2;
}

谢谢!

最佳答案

没有。测试在 i 递增后进行。因此,一旦 i 不小于 nums 数组的长度,循环就会停止。第二个循环在 if (nums[i + 1] != val) 处使用 i + 1,这就是为什么它需要测试 i小于长度减一。

此外您可以使该方法静态(因为它不使用实例状态)。

关于java - 为什么 for 循环没有越界错误(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354125/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com