Java布尔运算是一种基本的逻辑运算,它可以用来比较两个值,并返回一个布尔值(true或false)。它可以用来判断一个表达式是否正确,也可以用来控制程序的流程。
Java中有三种布尔运算:逻辑与、逻辑或和逻辑非。
1. 逻辑与(&&): 如果两个表达式都是true,则整体表达式的值也是true。如果其中一个表达式是false,则整体表达式的值也是false。例如: (a && b) 的值只有当a和b都是true时才会是true。
2. 逻辑或(||): 如果其中一个表达式的值是true,则整体表达式的值也是true。如果其中一个表达式的值是false,则整体表达式的值也是false。例如: (a || b) 的值只有当a或b之一是true时才会是true。
3. 逻辑非(!): 如果表
布尔逻辑运算符操作布尔操作数。
下表列出了所有Java布尔逻辑运算符。
运算符 | 结果 |
---|---|
& | 逻辑AND |
| | 逻辑或 |
^ | 逻辑异或(异或) |
|| | 短路OR |
&& | 短路AND |
! | 逻辑一元NOT |
&= | AND分配 |
|= | OR分配 |
^= | XOR分配 |
== | 等于 |
!= | 不等于 |
? : | 三元if-then-else |
下表显示了每个逻辑操作的效果:
A | B | A | B | A& B | A ^ B | !A |
---|---|---|---|---|---|
False | False | False | False | False | True |
True | False | True | False | True | False |
False | True | True | False | True | True |
True | True | True | True | False | False |
以下程序演示了布尔逻辑运算符。
public class Main { public static void main(String args[]) { boolean a = true; boolean b = false; boolean c = a | b; boolean d = a & b; boolean e = a ^ b; boolean f = (!a & b) | (a & !b); boolean g = !a; System.out.println(" a = " + a); System.out.println(" b = " + b); System.out.println(" a|b = " + c); System.out.println(" a&b = " + d); System.out.println(" a^b = " + e); System.out.println("!a&b|a&!b = " + f); System.out.println(" !a = " + g); } } ]]>
输出:
以下程序演示了按位逻辑运算符:
public class Main { public static void main(String args[]) { int a = 1; int b = 2; int c = a | b; int d = a & b; int e = a ^ b; int f = (~a & b) | (a & ~b); int g = ~a & 0x0f; System.out.println(" a = " + a); System.out.println(" b = " + b); System.out.println(" a|b = " + c); System.out.println(" a&b = " + d); System.out.println(" a^b = " + e); System.out.println("~a&b|a&~b = " + f); System.out.println(" ~a = " + g); } }
这里是这个程序的输出:
当一个操作数为 true
时, OR
运算符为真,无论第二个操作数是什么。当一个操作数为 false
时, AND
运算符将导致false,操作数是。如果使用 ||
和&&
,Java将不会评估右侧操作数结果可以由左操作数单独确定。
下面的代码显示了如何使用短路逻辑运算符确保除法运算在评估之前有效:
public class Main { public static void main(String[] args) { int denom = 0; int num = 3; if (denom != 0 && num / denom > 10) { System.out.println("Here"); } else { System.out.println("There"); } } }
输出:
如果我们想要改变逻辑运算符的快捷行为,我们可以使用& 和|。
以下代码使用单个& 确保增量操作将会应用于 e
是否 c
等于1。
public class Main { public static void main(String[] args) { int c = 0; int e = 99; int d = 0; if (c == 1 & e++ < 100) d = 100; System.out.println("e is " + e); System.out.println("d is " + d); } }
输出:
JSF教程 -JSF值更改事件示例我们可以处理h:inputText或h:selectOneMenu的值更改事件。要注册事件处理程序侦听器,请传递UI组件...
JSF教程 -JSF链接示例h:Link标签渲染一个HTML“anchor"元素。以下JSF标记h:link value="Page 1" outcome="page1" /被渲染为以下H...
JPA教程 -JPA查询本地查询结果类示例以下代码显示如何创建本机命名查询。@Entity@Table(name = "EMP")@NamedNativeQuery(name = ...
JPA教程 -JPA查询IN示例IN表达式可以检查单值路径表达式是否是集合的成员。集合可以内联定义为一组字面值,或者可以从子查询派生...
Java设计模式 - 抽象工厂模式抽象工厂模式是另一个创建模式。抽象工厂模式,也称为工厂的工厂,有一个工厂创建其他工厂。当使用...