对常量或者变量进行操作的符号。
运算符分为算术运算符,赋值运算符,比较运算符,逻辑运算符等。
1. 算术运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正好 | +3 | 3 |
- | 负号 | -3 | 3 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-4 | 2 |
* | 乘 | 3*4 | 12 |
/ | 除 | 5/5 | 1 |
% | 取模(求余) | 7%5 | 2 |
++ | 自增(前) | a=2;b=++a; | a=3;b=3; |
++ | 自增(后) | a=2;b=a++; | a=3;b=2; |
— | 自减(前) | a=2;b=—a; | a=1;b=1; |
— | 自减(后) | a=2;b=a—; | a=1;b=2; |
注意:
除法运算时,当除数和被除数都为整数时,结果也是一个整数;当除数运算有小数参与,结果也是一个小数。 取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与被模数的符号一样,与模数(%右边的数)的符号无关。 char类型在参与运算时,则使用char对应对ASCII码表的值。
2. 赋值运算符
将常量、变量或表达式的值赋值给某一个变量。
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | a=3;b=2; | a=3;b=2; |
+= | 加等于 | a=3;b=2;a+=b; | a=5;b=2; |
-= | 减等于 | a=3;b=2;a-=b; | a=1;b=2; |
*= | 乘等于 | a=3;b=2;a*=b; | a=6;b=2; |
/= | 除等于 | a=3;b=2;a/=b; | a=1;b=2; |
%= | 模等于 | a=3;b=2;a%=b; | a=1;b=2; |
注意:
1、在java中可以通过一条赋值语句对多个变量进行赋值。
int x,y,z;
x=y=z=5;//为3个变量同时赋值,可行
// 下面代码则是错误代码
int x=y=z=5;
2、在使用+=,-=,*=,/= 运算符进行赋值时,强制类型转换会自动完成。
short s = 3;
int i = 5;
s += i; //可行的,s+i的值是int类型,会自动转为short类型
// 下面代码是错误的
s = s + i;
// 这是正确的
s = (short)(s+i);
3. 比较运算符
比较运算符是对两个数值或变量进行比较,其结果是一个布尔值。
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | false |
!= | 不等于 | 4 != 3 | true |
< | 小于 | 4 < 3 | false |
> | 大于 | 4 > 3 | true |
<= | 小于等于 | 4 <= 3 | false |
>= | 大于等于 | 4 >= 3 | true |
4逻辑运算符
逻辑运算符用于对布尔型的数据进行操作,结果仍是一个布尔型数据。
a & b | a和b都为true,结果为true,否则为false |
---|---|
a && b | a和b都为true,结果为true,否则为false |
a | b | a和b都为false,结果为false,否则为true |
a || b | a和b都为false,结果为false,否则为true |
!a | 结果和a的值相反 |
a ^ b | a和b的结果不同为true,相同为false |
**a & b**
与**a && b**
的区别:
在使用&运算时,不论左边为true或者false,右边的表达式都会进行运算。
使用&&运算时,当左边为false时,右边的表达式则不会进行运算。 **a | b**
与**a || b**
的区别:
在使用 | 运算时,不论左边为true或者false,右边的表达式都会进行运算。
使用 || 运算时,当左边为true时,右边的表达式则不会进行运算。
5. 三元(目)运算符
格式:关系表达式 ? 表达式1 : 表达式2;
格式解析:?前面是判断条件,结果为boolean型,为true时执行表达式1,否则执行表达式2。
int a = 10;
int b = 20;
int c = a > b ? a : b; // 如果表式返回的是true ,把结果1返回 ,如果表达式返回的false, 把结果2返回
// c的值为20
6. 运算符优先级
数字越小优先级越高