Java中的运算符
1.算术运算符
基本四则运算符+ - * / %
规则比较简单,值得注意:
-
int类型/ int类型结果还是 int,需要使用 double 来计算。如图
运行结果如下:
-
0 不能作为除数
当0做除数时,会发生运行时异常(也称非受查异常)。
运行结果如下
-
% 表示取余
不仅仅可以对 int 求模,也能对 double 来求模。
运行结果如下
增量赋值运算符 += -= *= /= %=
运行结果如下
其他增量赋值运算符相类似。
自增/自减运算符 ++ –
需要注意的是前置(后置)自增/自减
前置自增/自减,如下
运行结果如下
后置自增/自减,如下
运行结果如下
我们不难发现,前置自增/自减,先进行赋值,后再进行运算;
而后置自增/自减,先进行运算,后再赋值。
与C语言不同的是如下情况
它的运行结果如下
这一点是需要我们注意的。
小结:
- 如果不取自增运算的表达式的返回值,则前置自增和后置自增没有区别。
- 如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值。
2.关系运算符
关系运算符主要有六个==、 !=、 < 、>、 <=、 >=。
注意,Java中,关系运算符的表达式返回值都是boolean类型( true 或者 false )。这是与C语言有所不同的。
例如:
运行结果如下
3.逻辑运算符
逻辑运算符主要有三个:&&、||、! 。
注意,逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean类型
逻辑与 &&
规则:两个操作数都为 true,结果为 true,否则结果为 false 。
逻辑或 ||
规则:两个操作数都为 false,结果为 false,否则结果为 true。
逻辑非 !
规则:操作数为 true,结果为 false;操作数为 false,结果为 true(这是个单目运算符,只有一个操作数)。
运行结果如下
在这里,&& 和 || 遵守短路求值的规则,对于 &&,如果左侧表达式值为 false,则表达式的整体的值一定是 false,无需计算右侧表达式。同理,对于 ||,如果左侧表达式值为 true,则表达式的整体的值一定是 true,无需计算右侧表达式。
& 和 | (不推荐使用)
& 和 | 如果操作数为 boolean 的时候,也表示逻辑运算,但是和 && 以及 || 相比,它们不支持短路求值。
4.位运算符
Java 中对数据的操作的最小单位不是字节,而是二进制位。位运算符主要有四个: & 、 | 、 ~ 、 ^
按位与 &
如果两个二进制位都是 1,则结果为 1,否则结果为 0 。
按位或 |
如果两个二进制位都是 0,则结果为 0,否则结果为 1 。
运行结果如下
其原因如下图所示