Java 語言中算術運算符的功能是進行算術運算,除了經常使用的加(+)、減(-)、乘(*)和除()外,還有取模運算(%)。加(+)、減(-)、乘(*)、除()和我們平常接觸的數學運算具有相同的含義。具體說明參見表 2。
算術運算符都是雙目運算符,即連接兩個操作數的運算符。優先級上,*、/、% 具有相同運算級別,并高于 +、-(+、- 具有相同級別)。例如:
這種運算規則與數學運算中的規則是相同的。首先計算賦值符號(=)右邊配對的括號內的值,其次按從左向右的結合方向計算乘法,最后做求余運算,表達式的結果為 2, 然后把 2 賦值給 d。
例如:
①int x=2,y=1; 表達式 y/x 的結果是 0。
②float x=2.0f; int y=1; 表達式 y/x 的結果是 0.5。
在 ① 中整型變量 x 和 y 相除,其結果仍為整型數據 0;在 ② 中由于兩個不同類型的數據進行運算,此時首先要進行類型轉換,會把 int 型的 y 轉換成與 x 一樣的 float 型,然后相除,最終結果為 float 類型的數字 0.5。
【例1】編寫一個程序,輸出不同類型的兩個數,執行相加、相減、相乘、相除和求余后輸入結果。
實現代碼如下:
保存文件并運行,輸出的結果如下所示。
本示例中使用了 4 種類型來執行算術運算。其中,整數類型的結果最容易理解,浮點型和雙精度型返回的結果都帶有小數,字符型將會把字符轉換為 ASCII 碼再運算。
從輸出結果中可以看到,整數之間的運算結果只保留整數部分,浮點型運算時保留 6 位小數部分,雙精度運算時則保留 16 位小數部分。
注意:Java 語言算術運算符的優先級是先乘除后加減。例如在表達式“a-b*c”中,b 的左側為減號,右側為乘號,而乘號優先級高于減號,因此該表達式可以轉換為“a-(b*c)”。
如果在一個表達式中的多個算術運算符的優先級別相同,例如“a-b+c”,此時將按照運算符的結合方向決定順序。算術運算符的結合方向都是“從左至右”,即先左后右。因此 b 先與減號結合,執行“a-b”的運算,再執行加 c 的運算。