java foreach循环?

javaforeach循环for(inti:a)里面不能改变i的值吗?for(inti:a){i++;}出来以后a还是一样的值... java foreach循环for(int i:a)

里面不能改变i的值吗?
for(int i:a) {
i++;
}
出来以后a还是一样的值
展开
 我来答
百度网友845f74e61
2023-09-09 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1595万
展开全部

你这样不行。
int这是基本的数据类型。

i  得到的是一个值,并不是数组元素的引用。它的修改与数组无关。

用类比较好实现你想要。

匿名用户
2023-09-04
展开全部
i的值已经改变了,但是没有重新将值放到a里面。foreach循环每次都会产生一个新对象i,你改变的是新对象的值。
要么这样写:
public static void main(String[] args) {

int[] a = new int[]{0, 1, 2, 3};
int index = 0;
for (int i : a) {
i++;

a[index] = i;
index++;
}

System.out.println(Arrays.toString(a));
}
所以你的这种情况其实建议使用fori进行循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天破8
2024-01-13
知道答主
回答量:19
采纳率:0%
帮助的人:2.2万
展开全部
a 数组中存储的是基本数据类型的数据,是数据不是索引。

for循环会取出数据,对取出来的数据进行修改不会印象数组中。
如果把a数组改为对象数组的话,a存储的就是对象的索引值,循环是取出的对象索引,如果修改就是修改索引和a索引所指向的同一个对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式