java - 为什么这个方法不抛出 ArrayIndexOutOfBoundsException?
问题描述
我正在学习 Java,但我不理解以下代码。
public static void main(String[] args) {
try {
int numbers[] = new int[5];
int total = 0;
for(int i = 0; i < 5; i++) {
System.out.println(i);
total += numbers[i];
}
}
catch(Exception e) {
System.out.println("First Exception");
}
finally {
System.out.println("Yes");
}
}
为什么 Java 不抛出ArrayIndexOutOfBoundsException
, 因为numbers[5]
不是数组的现有元素?它只有索引 0-4,对吧?
解决方案
在 for 循环中,增量发生在迭代结束之后,然后条件才完成。
因此,在您的情况下,when i
is 4 条件为真并且循环继续,当迭代结束i
时将递增到 5 并且条件将为假,因此循环将停止并且循环将永远不会工作i=5
推荐阅读
- javascript - 带有 readonly 属性的小部件不会打开
- twitter-bootstrap - Bootstrap 4更改导航链接悬停颜色
- c# - 使用 Webclient 和 C# 从 Origin 获取 HTML 页面
- php - PHP如何检查通过foreach循环传递的数据值是否相同或不同
- java - 专注于没有文本Java SWT的复选框
- angular - 如何以角度更改甜蜜警报的文本属性?
- ffmpeg - ffserver 的替代方案是什么?
- vb.net - 基础连接已关闭。无法为 SSL/TLS 安全通道建立信任关系
- java - 从本地机器连接 GCP 上的 MYSQL 第二代
- javascript - 从 Google Tag Manager 中的自定义 javascript 变量调用 woocommerce (php) 函数