逻辑运算符的概念和使用
逻辑运算符
- && (and符)表示逻辑与运算符,相当于“并且”,同真为真,一假为假
- || 表示逻辑或运算符,相当与“或者”,一真为真,同假为假
- !表示逻辑非运算符,相当于“取反”,真为假,假为真
- 逻辑运算符的操作数均为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); // b3 = false System.out.println(b1 && b2); // false 并且 System.out.println(b1 || b2); // true 或者 System.out.println(!b1); // false 取反 System.out.println(!b2); // true 取反 } }
逻辑运算符的短路特性
- 对于逻辑与运算符来说,若第一个表达式为假则结果为假,此时跳过第二个表达式;
- 对于逻辑或运算符来说,若第一个表达式为真则结果为真,此时跳过第二个表达式;
// 4、测试短路特性 int ia = 3; int ib = 5; // 对于逻辑与运算符来说,若第一个条件为假则整个表达式为假,此时跳过第二个表达式不执行 boolean b4 = (++ia == 3) && (++ib == 5); System.out.println("b4 = " + b4); // false System.out.println(ia); // 4 System.out.println(ib); // 5 短路特性,第二个表达式跳过没执行了 // 对于逻辑或运算符来说,若第一个条件为真则整个表达式为真,此时跳过第二个表达式不执行 boolean b5 = (++ia == 5) || (++ib == 5); System.out.println("b5 = " + b5); // true System.out.println(ia); // 5 System.out.println(ib); // 5 短路特性,第二个表达式跳过没执行了
案例:逻辑运算符判断三位数
提示用户输入一个正整数,使用逻辑运算符判断该正整数是否为三位数,若是则打印true,否则打印false。
逻辑运算符主要用于连接多个关系运算符作为最终运算的表达式,用于实现多条件的连接,关系运算符只能一种条件的判断,逻辑运算符实际上是关系运算符的升级
/* 编程使用逻辑运算符实现三位数的判断 */ import java.util.Scanner; public class LogicJudgeTest { 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(100 <= num 的结果) 第二个类型: int // 逻辑运算符主要用于连接多个关系运算符作为最终运算的表达式,用于实现多条件的连接,关系运算符只能一种条件的判断,逻辑运算符实际上是关系运算符的升级 System.out.println(num >= 100 && num <= 999); } }