gpt4 book ai didi

java - 对于带有基元的每个循环修改

转载 作者:行者123 更新时间:2023-12-05 00:35:00 26 4
gpt4 key购买 nike

int arr[] = {0,1,2,3,4,5};
for (int i : arr){
i = 1;
}

(问题 1):为什么这段代码没有产生错误,因为它使用 for-each 循环来修改元素?

 int arr[] = {0,1,2,3,4,5};
for (int i : arr){
arr[i] = 1;
}

(问题 2):即使没有正确使用 for each 循环,这段代码如何工作?尽管如此,不知何故所有元素都设置为 1?

感谢您的帮助。

最佳答案

(Question 1): Why does this code segment not produce an error since it is using a for-each loop to modify elements?

它不修改元素。它所做的是修改变量i,它在任何时间点恰好包含一个元素之一的副本,但除此之外与数组完全无关。

(Question 2): How does this code work even though the for each-loop is not being used properly.

循环可能看起来确实很奇怪,但从根本上来说并没有错。它等效于以下代码:

arr[0] = 1;
arr[1] = 1;
arr[2] = 1;
arr[3] = 1;
arr[4] = 1;
arr[5] = 1;

当然这只是因为 arr 本身包含有效的索引。如果不是(例如,如果 arr[0]=6),您将得到一个 ArrayIndexOutOfBoundsException

关于java - 对于带有基元的每个循环修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317576/

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