[英]Java enhanced loop
請逐步解釋此代碼的輸出:
public class My {
public static void main(String[] args) {
int[] a = {1,2,3,4,1};
for (int n : a) {
a[n] = 0;
}
for (int n : a) {
System.out.println(n);
}
}
}
我知道這是一個增強的循環。 但是不了解它如何與a[n]=0
為什么此代碼輸出00301?
您可以通過添加println
語句來調試它:
for (int n : a) {
System.out.println("Changing element " + n + " of array from " + a[n] + " to 0");
a[n] = 0;
}
輸出為:
Changing element 1 of array from 2 to 0
Changing element 0 of array from 1 to 0
Changing element 3 of array from 4 to 0
Changing element 0 of array from 0 to 0
Changing element 1 of array from 0 to 0
該代碼實際上是在替換第n個索引的值,其中n是遍歷時分配給n的值
遍歷數組a []時,它將更改數組的值。 這就是為什么a[2] and a[4]
永不更改的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.