【问题标题】:Java - pass by value example [duplicate]Java - 按值传递示例 [重复]
【发布时间】:2019-03-30 20:58:49
【问题描述】:

我有一个关于 Java 是按值传递的问题。我知道在方法之外声明的变量不会改变它们的值,因为当我对变量调用 I 方法时,该方法只会使用分配给它们的值。但是在这种情况下,我不明白为什么 int result 没有得到 2 的值。由于 increment() 会得到 x 的值,所以 1 并将其递增 1 并将值存储在 result 变量中。

public class Increment {
      public static void main(String[] args) {
        int x = 1;
        System.out.println("Before the call, x is " + x);
        int result = increment(x);
        System.out.println("After the call, x is " + result);
      }
      public static int increment(int n) {
       return n++;

      }
    }

【问题讨论】:

标签: java methods pass-by-value


【解决方案1】:

后自增运算符n++n 的值加1,但返回前一个值。因此increment(x) 返回x,而不是x+1

【讨论】:

  • 那么,i++ 在 for 循环中有什么用处?
  • @yy123q 在 for 循环中,您不会将 i++ 返回的值分配给变量。您只需在i++ 调用之后检查i 的值,它会为您提供递增的值。
猜你喜欢
  • 2011-12-23
  • 2013-12-02
  • 2012-03-12
  • 2013-09-15
  • 2012-03-13
  • 2014-09-10
  • 2016-04-22
  • 2016-12-30
  • 2011-05-16
相关资源
最近更新 更多