gpt4 book ai didi

Java 循环遍历整数数组

转载 作者:行者123 更新时间:2023-12-01 06:50:46 28 4
gpt4 key购买 nike

考虑以下 Java 代码:

int[] array = {1, 2, 3, 4, 5, 6};
for(int i : array) {
System.out.print(i + " ");
}

上面的代码显然打印了数组的内容。

1 2 3 4 5

我的问题是为什么 Java 不允许这样做?

int[] array = {1, 2, 3, 4, 5, 6};
int i;
for(i : array) {
System.out.print(i + " ");
}

编辑:当我编译第二个程序时,出现以下错误:

Main.java:14: error: bad initializer for for-loop
for(i : array) {
^
1 error

最佳答案

因为Java强制你在这里声明一个变量。 JLS, Section 14.14.2 ,定义增强的 for 循环,语法为:

EnhancedForStatement:

for ( {VariableModifier} UnannType VariableDeclaratorId : Expression ) Statement

EnhancedForStatementNoShortIf:

for ( {VariableModifier} UnannType VariableDeclaratorId : Expression ) StatementNoShortIf

UnannType 是所声明的变量的类型。

它接着指出,这种增强的 for 循环与此等效,for 循环 Iterables...

for (I #i = Expression.iterator(); #i.hasNext(); ) {
{VariableModifier} TargetType Identifier =
(TargetType) #i.next();
Statement
}

...对于数组...

T[] #a = Expression;
L1: L2: ... Lm:
for (int #i = 0; #i < #a.length; #i++) {
{VariableModifier} TargetType Identifier = #a[#i];
Statement
}

很明显,该变量是循环内本地声明的变量。

关于Java 循环遍历整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197218/

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