gpt4 book ai didi

java - Java 中的 For-each 循环

转载 作者:搜寻专家 更新时间:2023-11-01 04:01:12 25 4
gpt4 key购买 nike

我有一个示例代码,它创建一个大小为 10 的“数组”,并尝试在 For 循环中用反向值初始化它,例如:(9,8,7,6,5...0):

int[] array = new int[10];
for (int i = array.length - 1, j = 0; i >= 0; i--, j++) {
System.out.println("Present value of i=" + i
+ " Present value of j=" + j);
array[j] = i;
System.out.println("Array:" + j + "=" + i);
}
for (int k : array) {
System.out.println(array[k]);
}

到目前为止一切顺利。这是控制台的完美输出:

Present value of i=9 Present value of j=0
Array:0=9
Present value of i=8 Present value of j=1
Array:1=8
Present value of i=7 Present value of j=2
Array:2=7
Present value of i=6 Present value of j=3
Array:3=6
Present value of i=5 Present value of j=4
Array:4=5
Present value of i=4 Present value of j=5
Array:5=4
Present value of i=3 Present value of j=6
Array:6=3
Present value of i=2 Present value of j=7
Array:7=2
Present value of i=1 Present value of j=8
Array:8=1
Present value of i=0 Present value of j=9
Array:9=0

问题在于最后的 For-each 循环,它只是打印数组中的值:

for (int k : array) {
System.out.println(array[k]);
}

打印数组的值是 0,1,2...9 而它应该是 9,8,7...0

当我使用常规 For 循环打印数组时,它工作正常。我是不是漏掉了一些有趣的事情?

最佳答案

您已经使用 foreach 循环从 array 中获取值,您再次将其用作数组的索引,再次按顺序生成值。

只需打印k。变化

for (int k : array) {
System.out.println(array[k]);
}

for (int k : array) {
System.out.println(k);
}

输出结束:

9
8
7
6
5
4
3
2
1
0

关于java - Java 中的 For-each 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25901554/

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