Java:Foreach 循环在 int 数组上没有按预期工作?

标签 java arrays loops foreach

<分区>

我有一个非常简单的循环:

int[] positions = {1, 0, 0}

//print content of positions

for (int i : positions)
{
    if (i <= 0) i = -1;
}

//print content of positions

现在,我希望得到的是:

array: 1, 0, 0
array: 1, -1, -1

但是我得到了

array: 1, 0, 0
array: 1, 0, 0

只是……为什么?

亲切的问候, 水母

最佳答案

因为“i”是数组元素的副本而不是对它的引用:) 您修改的是局部变量,而不是数组的元素

这段代码等同于

for(int index = 0; index < array.length; index++) {

int i = array[index];
...
}

关于Java:Foreach 循环在 int 数组上没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044640/

相关文章:

java - Java 中的 3D 散点图和 3D 图形可视化

java - Spring Security - 忽略请求参数规则的URL

C++ 如何从函数返回一个数组?

javascript - 是什么导致 "Uncaught RangeError: Maximum call stack size exceeded"错误? (Chrome,在其他浏览器中其他消息)

javascript - Jquery each through <a> 只给我 href

java - 从 JLabel 文本中删除下划线

java - 从 Java 中的 arraylist 内的对象内的 arraylist 获取值?

arrays - Haskell 中的数组

c - 表达式必须是可修改的左值(指向结构的指针)

循环内的 JavaScript 闭包——简单实用的例子