【问题标题】:n = n--; why same value as before [duplicate]n = n--;为什么与以前的值相同[重复]
【发布时间】:2021-11-15 12:29:55
【问题描述】:

标题是不言自明的。考虑以下代码:

   int n = 5;
   n = n--;

它给出 n = 5。 据我了解,表达式 n-- 首先被评估,返回 5(即 POSTdecrement)。这个表达式被分配给 LHS,这里是 n。 在此执行之后,n 会减少。因此我预计 n = 4。

为什么我没有看到 4?

【问题讨论】:

  • “执行此操作后,n 会减少” - 为什么会在表达式 之后发生?那n--做了什么?
  • "执行后,n 减少" -> 是的,但是只有 一个 赋值,而不是两个,它的值是表达式,它与n-- 一起是n 之前递减。
  • 要获得预期的结果,请使用--4
  • 使用赋值或使用增量,但不能同时使用。 java 没有太多理由拥有这些运算符。

标签: java


【解决方案1】:

n-- 产生 5,然后将 n 设置为 4

n = 将 n 设置为右侧表达式的值,即 5

将递增/递减运算符与对同一变量的赋值混合使用很少有用。

【讨论】:

    【解决方案2】:

    这并不完全正确,有两种形式可以做到这一点--n 和 n--,这就是你将在 N 上做其余部分的地方。 用--n之前先休息再返回值,另一边则相反。

    你先传值,再把值休息,换个方式试试。

    【讨论】:

      【解决方案3】:

      给定n=5n-- 返回 5 但 n 的值为 4。

      给定n=5--n 返回 4,n 的值为 4。

      这就是为什么 n 仍然具有相同的值

      【讨论】:

        猜你喜欢
        • 2018-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        相关资源
        最近更新 更多