賦值運算子分類
-
基本賦值運算子:=(支持連續賦值)
-
擴展賦值運算子:+=,-=,*=,/=,%=
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/147236.html
標籤:Java
下一篇:修改lua現有腳本,非破解
