算数运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。
表格中的实例假设整数变量a的值为10,变量b的值为20:
操作符描述
+ 加法 - 相加运算符两侧的值
- 减法 - 左操作数减去右操作数
* 乘法 - 相乘操作符两侧的值
/ 除法 - 左操作数除以右操作数
% 取余 - 左操作数除以右操作数的余数
++ 自增: 操作数的值增加1
- - 自减: 操作数的值减少1
例子public static void main(string[] args) { int a = 10; int b = 20; int c = 25; int d = 25; system.out.println(a + b = + (a + b) ); system.out.println(a - b = + (a - b) ); system.out.println(a * b = + (a * b) ); system.out.println(b / a = + (b / a) ); system.out.println(b % a = + (b % a) ); system.out.println(c % a = + (c % a) ); system.out.println(a++ = + (a++) ); system.out.println(a-- = + (a--) ); // 查看 d++ 与 ++d 的不同 system.out.println(d++ = + (d++) ); system.out.println(++d = + (++d) ); } 运行结果 c:\program files\java\jdk1.8.0_192\bin\java.exe -javaagent:c:\program files\jetbrains\intellij idea 2020.1.3\lib\idea_rt.jar=51196:c:\program files\jetbrains\intellij idea 2020.1.3\bin -dfile.encoding=utf-8 -classpath c:\program files\java\jdk1.8.0_192\jre\lib\charsets.jar;c:\program files\java\jdk1.8.0_192\jre\lib\deploy.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\access-bridge-64.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\cldrdata.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\dnsns.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\jaccess.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\jfxrt.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\localedata.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\nashorn.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunec.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunjce_provider.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunmscapi.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunpkcs11.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\zipfs.jar;c:\program files\java\jdk1.8.0_192\jre\lib\javaws.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jce.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jfr.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jfxswt.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jsse.jar;c:\program files\java\jdk1.8.0_192\jre\lib\management-agent.jar;c:\program files\java\jdk1.8.0_192\jre\lib\plugin.jar;c:\program files\java\jdk1.8.0_192\jre\lib\resources.jar;c:\program files\java\jdk1.8.0_192\jre\lib\rt.jar;d:\javaproject\20210402\out\production\20210402 testa + b = 30a - b = -10a * b = 200b / a = 2b % a = 0c % a = 5a++ = 10a-- = 11d++ = 25++d = 27process finished with exit code 0
关系运算符运算符描述
== 检查如果两个操作数的值是否相等,如果相等则条件为真。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
例子public static void main(string[] args) { int a = 10; int b = 20; system.out.println("a == b = " + (a == b) ); system.out.println("a != b = " + (a != b) ); system.out.println("a > b = + (a > b) ); system.out.println(a < b = " + (a < b) ); system.out.println("b >= a = + (b >= a) ); system.out.println(b <= a = " + (b <= a) ); } 运行结果"c:\program files\java\jdk1.8.0_192\bin\java.exe" "-javaagent:c:\program files\jetbrains\intellij idea 2020.1.3\lib\idea_rt.jar=51452:c:\program files\jetbrains\intellij idea 2020.1.3\bin" -dfile.encoding=utf-8 -classpath "c:\program files\java\jdk1.8.0_192\jre\lib\charsets.jar;c:\program files\java\jdk1.8.0_192\jre\lib\deploy.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\access-bridge-64.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\cldrdata.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\dnsns.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\jaccess.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\jfxrt.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\localedata.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\nashorn.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunec.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunjce_provider.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunmscapi.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\sunpkcs11.jar;c:\program files\java\jdk1.8.0_192\jre\lib\ext\zipfs.jar;c:\program files\java\jdk1.8.0_192\jre\lib\javaws.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jce.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jfr.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jfxswt.jar;c:\program files\java\jdk1.8.0_192\jre\lib\jsse.jar;c:\program files\java\jdk1.8.0_192\jre\lib\management-agent.jar;c:\program files\java\jdk1.8.0_192\jre\lib\plugin.jar;c:\program files\java\jdk1.8.0_192\jre\lib\resources.jar;c:\program files\java\jdk1.8.0_192\jre\lib\rt.jar;d:\javaproject\20210402\out\production\20210402" testa == b = falsea != b = truea > b = falsea < b = trueb >= a = trueb <= a = falseprocess finished with exit code 0
逻辑运算符操作符描述
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。
ll 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
! 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false
例子 public static void main(string[] args) { boolean a = true; boolean b = false; system.out.println("a && b = " + (a&&b)); system.out.println("a || b = " + (a||b) ); system.out.println("!(a && b) = " + !(a && b)); }
赋值运算符赋值运算符描述例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 c = a + b将把a + b得到的值赋给c
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 c + = a等价于c = c + a
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 c - = a等价于c = c - a
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 c * = a等价于c = c * a
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 c / = a,c 与 a 同类型时等价于 c = c / a
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 c%= a等价于c = c%a
<< = 左移位赋值运算符 c << = 2等价于c = c << 2
>> = 右移位赋值运算符 c >> = 2等价于c = c >> 2
&= 按位与赋值运算符 c&= 2等价于c = c&2
^ = 按位异或赋值操作符 c ^ = 2等价于c = c ^ 2
l= 按位或赋值操作符 c l = 2等价于c = c
public static void main(string[] args) { int a = 10; int b = 20; int c = 0; c = a + b; system.out.println(c = a + b = + c ); c += a ; system.out.println(c += a = + c ); c -= a ; system.out.println(c -= a = + c ); c *= a ; system.out.println(c *= a = + c ); a = 10; c = 15; c /= a ; system.out.println(c /= a = + c ); a = 10; c = 15; c %= a ; system.out.println(c %= a = + c ); c <<= 2 ; system.out.println("c <<= 2 = " + c ); c >>= 2 ; system.out.println(c >>= 2 = + c ); c >>= 2 ; system.out.println(c >>= 2 = + c ); c &= a ; system.out.println(c &= a = + c ); c ^= a ; system.out.println(c ^= a = + c ); c |= a ; system.out.println(c |= a = + c ); }运行结果为:c = a + b = 30c += a = 40c -= a = 30c *= a = 300c /= a = 1c %= a = 5c <<= 2 = 20c >>= 2 = 5c >>= 2 = 1c &= a = 0c ^= a = 10c |= a = 10process finished with exit code 0
java运算符优先级类别操作关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr– 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 > >= < <= 左到右
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 l 左到右
逻辑与 && 左到右
逻辑或 ll 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = l= 从右到左
逗号 , 左到右
以上就是java的算数运算符有哪些及如何使用的详细内容。