Java 中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符和二元运算符。
一元运算符
算术一元运算一共有 3 个,分别是 -、++ 和 --。具体说明参见表 1。
| 一元算术运算 | |||
| 运 算 符 | 名 称 | 说 明 | 例 子 |
| - | 取反符号 | 取反运算 | b=-a |
| ++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
| -- | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
表 1 中,-a 是对 a 取反运算,a++ 或 a-- 是在表达式运算完后,再给 a 加一或减一。而 ++a 或 --a 是先给 a 加一或减一,然后再进行表达式运算。
int a = 12; System.out.println(-a); int b = a++; System.out.println(b); b = ++a; System.out.println(b);
上述代码第 2 行是 -a,是把 a 变量取反,结果输出是 -12。第 4 行代码是先把 a 赋值给 b 变量再加一,即先赋值后 ++,因此输出结果是 12。第 6 行代码是把 a 加一,然后把 a 赋值给 b 变量,即先 ++ 后赋值,因此输出结果是 14。
二元运算符
Java 语言中算术运算符的功能是进行算术运算,除了经常使用的加(+)、减(-)、乘(*)和除()外,还有取模运算(%)。加(+)、减(-)、乘(*)、除()和我们平常接触的数学运算具有相同的含义。具体说明参见表 2。
| 二元算术运算 | |||
| 运 算 符 | 名 称 | 说 明 | 例 子 |
| + | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a +b |
| - | 减 | 求 a 减 b 的差 | a - b |
| * | 乘 | 求 a 乘以 b 的积 | a * b |
| / | 除 | 求 a 除以 b 的商 | a / b |
| % | 取余 | 求 a 除以 b 的余数 | a%b |
算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)。
注意:Java 语言算术运算符的优先级是先乘除后加减。例如在表达式“a-b*c”中,b 的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此该表达式可以转换为“a-(b*c)”。
如果在一个表达式中的多个算术运算符的优先级别相同,例如“a-b+c”,此时将按照运算符的结合方向决定顺序。算术运算符的结合方向都是“从左至右”,即先左后右。因此 b 先与减号结合,执行“a-b”的运算,再执行加 c 的运算。



