为什么在迭代中没有捕获添加的结果?

时间:2013-12-22 14:14:34

标签: java for-loop iteration

在给定的代码中,为什么结果如此 在迭代中没有捕获加法?为什么x的值永远不会改变?

public class Fortran {
    static int bump(int i) { return i + 2; }
    public static void main(String[] args) {
        for(int x = 0; x < 5; bump(x))
        System.out.print(x + " ");
    } 
}

2 个答案:

答案 0 :(得分:3)

  1. Java通过复制传递值,因此bump只获取x的副本

  2. bump返回的值永远不会分配给x(也许您忘了x =)。

  3. 也许试试

    for(int x = 0; x < 5; x = bump(x))
    

答案 1 :(得分:0)

这只是因为你的新价值从未被分配。 这样做的正确方法更多。

for(int x=0;x<5;x+=2)
{
    //do whatever you want
}

注意:x + = 2是x = x + 2

的简写