1. 程式人生 > >在Java中,關於a=a+b與a+=b的區別

在Java中,關於a=a+b與a+=b的區別

/**
 * short a = 1; a = a + 1;有什麼錯? short a= 1; a += 1;有什麼錯?
 */
public class test2 {


    public static void main(String[] args) {
        short a = 1;
        int b = 100;
        long c = 100L;
a = a + 1;//ashort型別,1int型別,a+1 short型別+int型別,Java會自動轉化為高等級型別,所以a+1結果是int型別,
// 然後把int型別的值賦給比它小的short型別,Java不會自動轉化,所以報錯,需要強轉
a = (short) (a + 1);//正確 a += 1;// += java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。 b = b + c;//與上同理,需要強轉 b = (int) (b + c);//正確 //總結: Java型別轉換,小型別可以自動轉成大型別,大型別不能自動轉為小型別,需要強轉。 } }