num = + 10和num + = 10之间有什么区别?

use*_*361 3 java assignment-operator

我是java的新手,所以在试验时(正如你所知,最好的学习方法),我尝试了以下代码:

public class wHilE{
   public static void main(String[] args){
      int num = 10;
      while(num<=100){
        System.out.println("while countdown = "+ num);
        num=+10;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

它的结果是无限循环打印while countdown = 10,但是当我改变num=+10num+=10I 时,我得到了所需的结果.

为什么会这样?

Era*_*ran 9

num=+10相当于num=10.这就是循环永不结束的原因.

num+=10相当于num=num+10,它可以为您提供所需的行为.


das*_*ght 7

+=是一个复合作业; 这=+是一个正常的赋值,后跟一个加号,对于正数是可选的:

 x += 10;
 ^ ^^ ^^
 |  |  |
var |  val
compound assignment
Run Code Online (Sandbox Code Playgroud)

 x = +10;
 ^ ^ ^^^
 | |  |
var| val
assignment
Run Code Online (Sandbox Code Playgroud)

第一个操作增加了十个x; 第二个操作分配10,x而不管其先前值.