
(4)逻辑运算符
逻辑运算即对布尔类型进行的与、或、非、 异或 等的运算,其运算结果仍为布尔类型。
逻辑运算符有6个:&(与)、(或)、!(非)、^(异或)、&&(条件与)、||(条件或)。
只有!(非)是单目运算符,其余均为双目运算符。
&与运算,当双目均为true时,结果为true。其余结果均为false。
|或运算,当双止均为false时,结果才为false。其余结果均为true。
!非运算,当 操作数 为true时,结果为false。当操作数为false时,结果为true。
^异或运算,当双目相异时,结果为true。当双目相同时,结果为false。
&&条件与,两个操作数均为true或false的表达式,当两个表达式的值均为true时,&&的结果才为true。否则,为false。
||条件或,两个操作数也是 条件表达式 ,当两个表达式的值均为false时,||的结果才为false。否则,为true。
例: 判断一个年份是否为 闰年 。
解:闰年的含义,能被4 整除 但不能被100整除,或能被400整除的年份即为闰年。
故,其判断条件有两个。
①:能被4整除但不能被100整除。
②:能被400整除。
①和②之间用的连接条件是“或”,故要用到||条件或。
而①中也有两个条件,“能被4整除”和“不能被100整除”,这两个条件不能并存,因此要用到&&条件与。
定义变量: year表示年份。
因此,可以得出,本例的判断条件为:
((year%4==0)&&(year%100!=0))||year%400==0.
完整代码及运行结果如下:

由于 运算符 有其自身的优先级,上述条件其实可以不加括号改为:
year%4==0&&year%100!=0||year%400==0
因为算术运算符的优先级高于逻辑运算符的。
但为了方便理解,建议还是加括号,这样更方便我们理解,到底是先计算的哪一个。
(5)条件运算符
?:
为Java中唯一一个 三目运算符 ,由3个操作数参与运算。
其格式如下:
表达式1?表达式2:表达式3
其运行流程如下:先判断表达式1的真假,如果为真,执行表达式2;否则,执行表达式3。
例:a>b?a:b
此句是判断a、b两变量的大小,如果a>b,则输出a;否则,输出b。
完整代码及运行结果如下:

在上述判断闰年的例题中,也可用条件表达式,改写如下:

所有的if…else…语句几乎都可用条件表达式来改写。
b本文转载至微信公众号——Java学习 从零开始,如有侵权请联系立删!
