为什么这个变量的值不变?

时间:2015-04-08 18:48:09

标签: java

我正在学习Java语言并试图这样做:

public class IntegerPlusOne {
    public static int addOne(int n) {
        n = n + 1;
        return n;
    }
    public static void main(String[] args) {
        int n = 0;
        addOne(n);
        System.out.println(n);
    }
}

它应该是打印“1”,而是打印为零。无论我设置n等于什么,addOne函数都不会改变它,我认为函数已经破坏了,但是如果我自己测试它会返回一个比我发送给它的int更多的东西,这真的让我感到困惑。

1 个答案:

答案 0 :(得分:0)

在java中,函数不能更改传递给它的参数的值,因为它们是按值传递的。 您可以尝试打印从addOne (n)函数返回的值:

public class IntegerPlusOne {
    public static int addOne(int n) {
        return n + 1;
    }
    public static void main(String[] args) {
        System.out.println(addOne(0));
    }
}