【问题标题】:What is the difference between a += b and a =+ b , also a++ and ++a?a += b 和 a =+ b 以及 a++ 和 ++a 有什么区别?
【发布时间】:2011-02-23 22:52:46
【问题描述】:

正如我在标题中提到的,

a += b 和 a =+ b 以及 a++ 和 ++a 有什么区别?我有点困惑

【问题讨论】:

  • 在真正的旧版本 C 中,=+ 等同于 +=。出于显而易见的原因而放弃。

标签: java


【解决方案1】:

a += b 等价于a = a + b

a = +b 等价于a = b

a++++a 都将 a 增加 1。 不同之处在于a++ 返回的是a 在增量之前的值,而++a 返回的是增量之后的值。

即:

a = 10;
b = ++a; //a = 11, b = 11

a = 10;
b = a++; //a = 11, b = 10

【讨论】:

  • +1。回复:“a += b 等同于a = a + b”:一个小书呆子:如果a 的评估涉及副作用,那么这些只会发生一次。例如,在foo().x += y 中,foo 方法仅被调用一次,而在foo().x = foo().x + y 中,它被调用两次(甚至每次都可能返回不同的实例,在这种情况下,x 被分配给不同于正在读取的x)。
【解决方案2】:

a += b 等价于a = a + b

a = +b 等价于a = b

a++后缀增量++a前缀增量。它们在独立语句中使用时没有区别,但它们的评估结果不同:a++ 返回 a before 递增的值,而 ++a after。即

int a = 1;
int b = a++; // result: b == 1, a == 2
int c = ++a; // result: c == 3, a == 3

【讨论】:

    【解决方案3】:

    其他人已经涵盖了您大部分问题的答案。但是,他们对您的第二个示例有所遗漏。

    a = +b+b 的值分配给a。 “一元加号”对于数字类型是无操作的,但在其他类型的对象上是编译时错误(例如,您不能将它与字符串一起使用)。它主要是为了让您可以在需要时使用前导 + 符号编写数字。这从来都不是必需的,但在某些情况下它可以提高可读性。

    【讨论】:

      【解决方案4】:

      a+=b ========> a=a+b

      a=+b ========> a=b

      ++a 将增加变量并返回增加的值。

      a++ 将增加变量,但返回增加之前的值。

      【讨论】:

        【解决方案5】:

        Java operators

        a += b;  // a = a + b
        a = +b;  // a = b
        a++;     // a = a + 1 (returning a if used inside some expression)
        ++a;     // a = a + 1 (returning a + 1 if used inside some expression)
        

        【讨论】:

          【解决方案6】:
          a += b <=> a = a + b
          a =+ b <=> a = b
          a++ // post increment, means the value gets used, and after that, a is incremented by one
          ++a //pre increment, a is incremented by one before the value is used
          

          【讨论】:

            【解决方案7】:

            a++ 首先读取 a 的值,然后增加它的值。 ++a 首先增加值,然后读取它。您可以很容易地看到打印它们的区别。

            int a = 4;
            System.out.println(a++); // prints 4, after printing, a == 5
            System.out.println(++a); // first increments a, then reads its value (6), and that's what got printed.
            

            对于a += ba = +b,@Péter Török 之前已经回答清楚了。

            【讨论】:

              【解决方案8】:
              • a += b; 等价于a = a + b;

              • a =+ b; 等价于a = +b;。这意味着+b(正)被分配给变量a

              • a++ 是变量a后递增,这意味着变量的值在递增1 之前使用。

              • ++a是变量apre-increment,意味着变量的值增加了1,并在增加后使用。

              【讨论】:

                【解决方案9】:

                你可以找到区别here你提到的所有案例都有例子!

                【讨论】:

                  猜你喜欢
                  • 2018-06-27
                  • 1970-01-01
                  • 2012-07-03
                  • 1970-01-01
                  • 2013-06-25
                  • 2020-10-09
                  • 1970-01-01
                  • 2010-10-11
                  • 2017-04-06
                  相关资源
                  最近更新 更多