賦值運算符分類
-
基本賦值運算符:=(支持連續賦值)
-
擴展賦值運算符:+=,-=,*=,/=,%=
1 short s = 3; 2 s = s + 2; 3 s+=2;
上述代碼第2行和第3行有什么區別?
第2行:變量s為short類型,2默認為int類型,兩者相加后賦值給short類型的變量s時,會因為int類型不能自動轉換為short類型而出現/編譯錯誤,所以代碼可以修改為:s = (short)(s + 2)后再運算。另外當變量參與運算時,java程序並不知道運算結束后該變量會不會超出當前變量類型的范圍,所以會把變量轉換為更大長度的數據類型第3行:在使用擴展賦值運算符時,不會出現/編譯錯誤,因為變量在參與運算時會自動強制轉換為當前變量的類型
// 定義變量 int i = 1; // 拿*=的左邊變量和右邊的數據做相乘運算,然后把結果賦值給左邊的變量 i*=0.1; // 注意:擴展的賦值運算符,隱含了強制類型轉換 // 所以1*0.1強制轉換為int類型導致舍棄小數部分,結果為:0 System.out.println(i); // i進行自增運算,結果為:1 i++; System.out.println(i);
