歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java中的復合運算符

Java中的復合運算符,比如 += 、-= 等,一般來說,a = a + b 與 a += b 是等價的,但實際上從嚴格意義上來說,這二者之間並不等價,還是有一定區別的。

比如:

public class TestCompositeOperator {

  public static void main(String[] args) {
      short a = 5;
      short b = 10;
      a = a + b;  //此處會報錯
      System.out.println(a);
  }

 

}
 
因為在Java中,凡是小於int的整型在參與運算的時候,都會被當做int類型來處理,即a = a + b;此處的右邊的a和b在參與運算的過程中,a和b都被當成int類型來處理,運算結果當然是int類型,要把int類型賦給short類型,必須強制轉換,否則就會報錯;
但是:
public class TestCompositeOperator {

  public static void main(String[] args) {
      short a = 5;
      short b = 10;
      a += b;  //此處正確
      System.out.println(a);
  }

 

}
 
因為在Java中,像+=這樣的復合運算符,實際上包含了強制類型轉換,即以上代碼a += b;是和 a = (short)(a + b);等價。
所以在實際使用中,一定要牢記基本的運算准則,否則就很容易出一些莫名其妙的錯誤。

Copyright © Linux教程網 All Rights Reserved