java - 奇怪的 for-each 循环 java

标签 java loops foreach

谁能告诉我,它为什么有效?

int[] ints = {1,2,3};
for(int i : ints) {
System.out.println(i); i = 0;
}

为什么我可以设置0为i,但还是会迭代?

最佳答案

因为 i 不是该循环中的控制变量,它只是数组中的一个值。每JLS§14.4.2 ,对于数组,增强的 for 循环等同于:

The enhanced for statement is equivalent to a basic for statement of the form:

...

for (int #i = 0; #i < #a.length; #i++) {
    {VariableModifier} TargetType Identifier = #a[#i];
    Statement
}

所以将它应用到你的循环中:

int[] ints = {1,2,3};
for (int index = 0; index < ints.length; index++) {
    int i = ints[index];
    System.out.println(i);
    i = 0;
}

关于java - 奇怪的 for-each 循环 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514097/

相关文章:

java - 错误: No mapping found for HTTP request with URI spring mvc without xml

loops - VBScript 创建一个多维数组并添加到其中?

php foreach循环用几个词搜索mysql表

JavaScript。如何解析一串变量并将其转换为具有属性的对象

java - 如何将java中类的所有对象的值加在一起?

java - 与 Beanshell 的 JDBC 连接

java - 如何检测 libGdx 中的文本点击

java - 如何调整 JFrame 的大小,以便组件也根据用户的大小扩大或缩小?

c - 如果用户按除 1 或 2 或 3 之外的任意键,如何返回开头?

php - 我如何获取数据库中字段名(名称)中的所有数据并将其存储在变量数组中?在 PHP 和 MYSQL 中