3.5 逻辑运算符主要用于进行逻辑运算
java 中常用的逻辑运算符如下表所示:
逻辑运算符 | 名称 | 举例 | 结果 |
---|---|---|---|
&& | 与 | a&&b | 如果a与b都为true,则返回true |
| | | 或 | a| |b | 如果a与b任一true,则返回true |
! | 非 | !a | 如果a为false,则返回true,即取反 |
^ | 异或 | a^b | 如果a与b有且仅有一个为true,则返回true |
我们可以从“投票选举”的角度理解逻辑运算符:
1、与:要求所有人都投票同意,才能通过某议题
2、或:只要求一个人投票同意就可以通过某议题
3、非:某人原本投票同意,通过非运算符,可以使其投票无效
4、 异或:有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。
譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
注意哦:
1、 && 和 || 中间是没有空格滴
2、 使用的是英文的符号哦
3.6Java中的条件运算符
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
例如:
int score=68;
String mark =(score>=60)?"及格":"不及格";
System.out.println("考试成绩如何:"+mark);
因为,表达式 score>=60 的值为 true ,所以,返回:
考试成绩如何 :及格
3.7Java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
优先级 | 运算符 |
---|---|
1 | () |
2 | ! 、+(正)、 -(负)、++ 、- - |
3 | *、/、% |
4 | +、- |
5 | <、<=、>、>= |
6 | ==、!= |
7 | ^ |
8 | && |
9 | | | |
10 | ?: |
11 | =、+=,-=,*=,/=,%= |
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如: