num=+10 和 num+=10 有啥区别? [复制]

Posted

技术标签:

【中文标题】num=+10 和 num+=10 有啥区别? [复制]【英文标题】:What's the difference between num=+10 and num+=10? [duplicate]num=+10 和 num+=10 有什么区别? [复制] 【发布时间】:2014-01-02 06:41:34 【问题描述】:

我是 java 新手,所以在进行实验时(如您所知,这是最好的学习方式),我尝试了以下代码:

public class wHilE
   public static void main(String[] args)
      int num = 10;
      while(num<=100)
        System.out.println("while countdown = "+ num);
        num=+10;
      
   

结果是无限循环打印while countdown = 10,但是当我将num=+10 更改为num+=10 时,我得到了想要的结果。

为什么会这样?

【问题讨论】:

num =+ 10 &lt;=&gt; num = +10 &lt;=&gt; num = 10num += 10 &lt;=&gt; num = num + 10. 【参考方案1】:

num=+10 等价于num=10。这就是循环永远不会结束的原因。

num+=10 等同于num=num+10,它会为您提供所需的行为。

【讨论】:

【参考方案2】:

+= 是一个复合赋值; =+ 是一个普通的赋值,后跟一个加号,对于正数是可选的:

 x += 10;
 ^ ^^ ^^
 |  |  |
var |  val
compound assignment

对比

 x = +10;
 ^ ^ ^^^
 | |  |
var| val
assignment

第一个操作给x加十;第二个操作将 10 分配给 x,无论其先前的值如何。

【讨论】:

【参考方案3】:

num += 10 表示num = num + 10 它将为 num 分配 num + 10 值。

num=+10 表示num = +10 这意味着+10 值将存储在num 中。 这里的 +10 表示正 10。

【讨论】:

感谢回复

以上是关于num=+10 和 num+=10 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

matlab中的num2str函数和char函数在用法上有啥本质区别呀?

day 7 字符串

Oracle中的“过程名称IS”和“过程名称AS”有啥区别?

c程序输入10个数到一维数组中,按升序排序后输出。

函数声明与函数表达式的区别

求c语言解说(问题很初级),分全给了