逻辑运算符
符号 | 作用 |
---|---|
&& | 逻辑 与 运算符,相当于"并且",同真为真,一假为假 |
|| | 逻辑 或 运算符,一真为真,同假为假。相当于"或者 |
! | 逻辑 非 运算符,相当于"取反",真为假,假为真 |
- 逻辑运算符的操作数均为boolean表达式。
/**
* 编程实现逻辑运算符的使用
*/
public class LogicTest {
public static void main(String [] args) {
//1.声明两个boolean类型的变量并初始化
boolean b1 = true;
boolean b2 = false;
//2.打印变量的值
System.out.println("b1 = "+b1);//b1 = true
System.out.println("b2 = "+b2);//b2 = false
System.out.println("=====================");
//3.使用上述变量实现逻辑运算符的使用
boolean b3 = b1 && b2;
System.out.println("b3 = "+b3);//b1 = false
System.out.println(b1 && b2);//false 并且
System.out.println(b1 || b2);//true 或者
System.out.println(!b1);//false 非
System.out.println(!b2);//true 非
}
}
显示结果:
逻辑运算符的图解
逻辑运算符的短路特性
短路特性:
在逻辑运算中,第一个条件就可以判断出表达式的结果而跳过第二个条件的判断的特性
- 对于逻辑与运算符来说,若第一个表达式为假则结果为假,此时跳过第 二个表达式;
- 对于逻辑或运算符来说,若第一个表达式为真则结果为真,此时跳过第 二个表达式;
/**
* 编程实现短路特性的使用
*/
public class LogicTest {
public static void main(String [] args) {
//1.测试短路特性
int ia = 3;
int ib = 5;
//对于逻辑与运算符来说,若第一个条件为假则整个表达式为假,此时跳过第二个表达式不执行
// 4 == 3 第一个就是false 直接跳过第二个条件
boolean b4 = (++ia == 3)&&(++ib == 5);
System.out.println("b4 = "+b4);//false
System.out.println("ia = "+ia);//4
System.out.println("ib = "+ib);//5 因为直接跳过了第二个条件,所以第二个条件不执行,还是原来的数字
System.out.println("=====================");
//对于逻辑或运算符来说,若第一个条件为真则结果为真,此时跳过第 二个表达式;
// 5 == 5 第一个为true
boolean b5 = (++ia == 5)||(++ib == 5);
System.out.println("b5 = "+b5);//true
System.out.println("ia = "+ia);//5
System.out.println("ib = "+ib);//5 因为直接跳过了第二个条件,所以第二个条件不执行,还是原来的数字
}
}
显示结果
案例题目(逻辑运算符判断三位数)
提示用户输入一个正整数,使用逻辑运算符判断该正整数是否为三位数, 若是则打印true,否则打印false。
import java.util.Scanner;
/**
* 提示用户输入一个正整数,使用逻辑运算符判断该正整数是否为三位数, 若是则打印true,否则打印fale。
*/
public class LogicTest {
public static void main(String [] args) {
//1.提示用户输入一个正整数
System.out.println("请输入一个正整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//2.使用逻辑运算符判断该正整数是否为三位数 >=100 <=999
//System.out.println(100 <= num <= 999); 错误: 二元运算符 '<=' 的操作数类型错误
boolean b1 = num>=100 && num<=999;
//逻辑运算符主要用于连接多个关系运算符作为最终运算的表达式,用于实现多条件的连接 类似于 关系运算符的升级
System.out.println(b1);
}
}
显示结果