【问题标题】:Returning Incremented Numbers in Java [duplicate]在Java中返回递增的数字[重复]
【发布时间】:2014-05-07 20:14:19
【问题描述】:

我试图在 Java 代码中解决这个“增量”问题,但我找不到解决方案:

public class Return {
   public static void main(String[] args) {
    int n = returnn(3);
    System.out.println(n);
   }

   public static int returnn(int n) {
    return n++;
   }
}

我应该返回 4,但它却返回 3。这是为什么?另外,当我输入: return n+=1它有效。这让我很困惑。另外,n++++n 有什么区别?非常感谢任何澄清。

【问题讨论】:

  • 增量运算符请参见the Java tutorial的底部。
  • ++n 会起作用,但要注意:如果是 main 中的值的副本,则函数中的 n 值。所以 return (n+1) 将与函数 returnn 中的位置参数 n 具有相同的效果,一旦函数返回
  • 只需return n+1; 不需要增加局部变量。
  • 您正在使用后增量。 3 是正确的。

标签: java return increment


【解决方案1】:

您必须写return ++n,因为return n++ 的计算结果为n 的原始值,而++n 在递增后计算为n 的值。

【讨论】:

  • 或者只是 (n + 1),因为一旦函数返回,参数 n 值就会丢失。所以 ++n 在这里没有持久的影响
  • 我为什么要删除它?
【解决方案2】:

n++ 在评估 n 的当前值后将 n 递增 1

++nn 递增 1,然后计算其值

您的方法returnn(int) 应该返回++n,而不是n++

【讨论】:

    【解决方案3】:

    试试下面的;

    public class Return {
        public static void main(String[] args) {
            int n = returnn(3);
            System.out.println(n);
        }
    
        public static int returnn(int n) {
            return ++n;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2015-08-28
      • 2017-05-05
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多