You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java增强for循环会修改数组吗?新手遇实际修改情况求解答

增强for循环为啥没阻止我修改数组?

你误解了增强for循环的限制——不是增强for循环不能修改数组,而是不能通过增强for循环的迭代变量(也就是你代码里的j)来修改数组元素。

你的代码里,修改数组的操作是a[i1] = j + "s",这是直接通过数组下标i1给数组对应位置赋值,和增强for循环本身没关系。不管用普通for还是增强for循环,只要直接操作数组下标,就会改变数组里的元素。

拆解下你的代码逻辑:

  • 第一次循环:j是数组第一个元素"dog",你通过a[0] = j + "s"把数组第0位改成"dogs",随后i1自增到1。
  • 第二次循环:j是数组第二个元素"cat",a[1] = j + "s"把第1位改成"cats",i1自增到2。
  • 第三次循环:j是数组第三个元素"turtle",a[2] = j + "s"把第2位改成"turtles",此时i1已经是2,不再自增。

要是想验证“增强for循环的迭代变量改不了数组”,可以试试这段代码:

String[] a = {"dog", "cat", "turtle"};
for (String j : a) {
    j = j + "s"; // 这里只是修改局部变量j的引用,和数组本身无关
}
System.out.println(java.util.Arrays.toString(a)); // 输出还是[dog, cat, turtle]

这时候数组就不会变,因为你只改了j这个局部变量的指向,根本没碰数组里的元素。

内容的提问来源于stack exchange,提问作者SBh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:35:40