算術運算符可用于整數、浮點數和字符(即除了布爾類型之外的所有基本類型)。如果其中有個操作數是浮點數,就按浮點算術運算;否則,按整數算術運算。這點很重要,因為整數算術和浮點算術是有區別的,例如除法的運算方式,以及上溢和下溢的處理方式。
算術運算符有以下幾種:
加法(+)
減法(-)
乘法(*)
除法(/)
求模(%)
負號(-)
詳細說明如下:
加法(+)
+號計算兩個數之和。+號還能連接兩個字符串。如果+號的操作數中有一個是字符串,另一個也會轉換成字符串。如果想把加法和連接字符串放在一起使用,一定要使用括號,否則結果會出錯,例如:
System.out.println("Total: " + 3 + 4);? ? ?// 打印? “Total: 34”,不是37
減法(-)
-號當成二元運算符使用時,計算第一個操作數減去第二個操作數得到的結果。例如,7-3的結果是4。-號也可以執行一元取負操作。
乘法(*)
*號計算兩個操作數的乘積,例如,7*3的結果是21。
除法(/)
/號用第一個操作數除以第二個操作數。如果兩個操作數都是整數,結果也是整數,丟掉余數。如果有一個操作數是浮點數,結果也是浮點數。兩個整數相除時,如果除數是0,拋出ArithmeticException 異常,不過,對浮點數的計算來說,如果除以0,得到的是無窮大或NaN,例如:
7/3? ?// 計算結果為2
7/3.0f? ?//計算結果為2.333333f
7/0? ? //拋出ArithmeticException異常
7/0.0? ?// 計算結果為正無窮大
0.0/0.0? ? // 計算結果為NaN
求模(%)
%運算符計算第一個操作數和第二個操作數的模數,即返回第一個操作數除以第二個操作數的余數,例如7%3的結果是1。結果的負號和第一個操作數的負號一樣。雖然求模運算的操作數一般是整數,但也可以使用浮點數,例如4.3%2.1的結果是0.1。如果操作數是整數,計算零的模數會拋出 ArithmeticException 異常。如果操作數是浮點數,計算 0.0 的模數得到的結果是 NaN。計算無窮大和任何數的模數得到的結果也是 NaN。
負號(-)
如果把 - 號當成一元運算符使用,即放在單個操作數之前,執行的是一元取負運算。也就是說,會把正數轉換成對應的負數,或把負數轉換成對應的正數。