逻辑运算符
逻辑运算符只对布尔型操作数进行运算,并返回一个布尔类型数据(真true或假false)。
|
运算符 |
含义 |
解释 |
|
&& |
与(AND) |
两个操作数皆为真,结果才为真 |
|
& | ||
|
|| |
或(OR) |
两个数只要有一个为真,运算结果才为真 |
|
| | ||
|
! |
非(NOT) |
返回与操作数相反的布尔值 |
举个例子:
1>0&&3>0;//结果为true
1>0||3>8;//结果为true
!(1>0);//结果为false
短路逻辑运算符的使用
public class Short {
public static void main(String[] args) {
int i = 5;
boolean flag = (i<3)&&(i<4);//&&短路,i<4系统不做运算
System.out.println(flag);
flag = (i>4)||(i>3);//||短路,i>3系统不做运算
System.out.println(flag);
}
}
程序运行结果:

程序中,第3行,由于i=5,所以(i<3)为false,对于&&逻辑运算符,其操作数之一为false,其返回值必然为false,故再确定其左边的操作数为false,对于后一个运算操作数(i<4)无需计算,也就是&&短路。
类似的,对于“||”运算符,由于i=5,所以(i>4)为true,对于||逻辑运算符,其操作数之一为true,整体返回值必然为true,故再确定其左边的操作数为true,对于后一个运算操作数(i>3)无需计算,也就是“||”短路。
位运算符:
| 位运算符 | 含义 |
| & | 按位与 |
| | | 按位或 |
| ^ | 按位异或 |
| ~ | 按位取反 |
| << | 左位移 |
| >> | 右位移 |
| >>> | 无符号右位移 |
截张图来理解

按位与和按位或运算:
public class 按位与和或 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("x=");
int x = s.nextInt();
System.out.println("y=");
int y = s.nextInt();
System.out.println("x与y的结果为:");
System.out.println(x&y);
System.out.println("x或y的结果为:");
System.out.println(x|y);
}
}
输出结果为:

代码解析:
第10行,实现与操作,相“与”的两位,如果全部为1结果才是1,有一个为0结果就是0。
13的二进制: 0000000 0000000 0000000 0000110
17的二进制: 00000000 00000000 00000000 00000111
“与”的结果: 00000000 00000000 00000000 00000101
所以输出的结果为5。
第12行,实现或操作,位“或”的两位,如果全为0才是0,有一个为1结果就是1。
13的二进制: 00000000 00000000 00000000 00001101
7的二进制: 00000000 00000000 00000000 00000111
“或”的结果: 00000000 0000000 0000000 00001111所以输出的结果为15。
本文主要介绍Java中逻辑运算符和位运算符的使用。逻辑运算符对布尔型操作数运算,返回布尔值,如&&和||存在短路现象。位运算符方面,详细讲解了按位与和按位或运算,通过二进制示例展示了运算过程和结果。
1322

被折叠的 条评论
为什么被折叠?



