Java之运算符

1.自增与自减运算符

(1)对于前缀形式,操作数先自增或自减,然后表达式使用自增或自减之后的值。
x=1;
y=++x;
则y == 2;

(2)对于后缀形式,表达式先使用操作数原来的值,然后在修改操作数。
x=1;
y=x++;
则y == 1;

2.关系运算符

只有数值类型才能使使用关系运算符进行比较,即只有整型、浮点型以及字符型操作数,才可以进行以判定相互之间大小为目的的比较。

在C++中,这些语句是非常普遍的:
int done;
//…
if(done)… //Valid in C/C++
if(!done)… //but not in Java

而在Java中,这些语句必须编写为如下形式:
if(done == 0)… //this is Java-style
if(done != 0)…

这是因为在Java中定义true和false的方式与C/C++不同。在C/C++中,true是任何非零值,false是0;而在Java中true和false不是数值,他们与示范为0没有任何关系。
Java中if()语句,括号中类型必须为boolen类型。

3.布尔逻辑运算

& 逻辑与
| 逻辑或

&& 短路与(条件与)
|| 短路或(条件或)

短路运算(&&和||),假如单独根据左操作数就能确定表达式的结果,那么Java就不会再计算右操作数的值。
而逻辑运算(&和|),左操作数和右操作数都要计算。

例如,if(denom != 0 && num / denom >10) 使用短路运算,所以不存在由于变量denom为0而引起运行时异常的风险。

对于布尔逻辑,使用逻辑与和或的短路形式是标准用法,而将单字符版本专门留给位运算。但是,这个规则有一个例外。例如,考虑下面的代码段:
if(c == 1 & e++ < 100) d = 100;
在此,使用单个&符号以确保无论c是否等于1,都会为e应用自增运算。

出自:《Java 8编程参考官方教程(第9版)》

你可能感兴趣的:(java,运算符)