一、 逻辑运算符
(1)逻辑运算符用于对两个布尔型操作数进行运算,其结果还是布尔值。
(2)Java中共有6个逻辑运算符,分别是&(逻辑与)、|(逻辑或)、^(逻辑异或)、!(逻辑反、逻辑非)、&&(短路与)、||(短路或)
(3)逻辑运算符运算规律
运算符 含义 运算规则
& 逻辑与 两个操作数都是true,结果才为true;不论左边取值,右边表达式都会进行计算
| 逻辑或 两个操作数一个是true,结果为true;不论左边取值,右边表达式都会进行计算
^ 逻辑异或 两个操作数相同,结果为false;两个操作数不同,结果为true
! 逻辑反、逻辑非 操作数为true,结果为false;操作数为false,结果为true
&& 短路与 两个操作数都是true,结果才为true;如果左边为false,右边表达式不会进行计算
|| 短路或 两个操作数一个是true,结果为true;如果运算符左边的值为true,右边表达式不会进行计算
(4)优先级别:"!">"&">"^">"|">"&&">"||"
(5)&和&&的区别:当&&的左侧为false时,将不会计算其右侧的表达式,即左false则false;无论任何情况,“&”两侧的表达式都会参与计算。
(6)|和||的区别:当||的左侧为true时,将不会计算其右侧的表达式,即左true则true;无论任何情况,“|”两侧的表达式都会参与计算。
package cn.bdqn.Day005;
//&& 与
// || 或
//逻辑运算符
public class Demo1 {
public static void main(String[] args) {
/*
* &&运算规律:只有当&&左右两边的表达式同时为true,&&运算结果为true
* &运算规律:只有当&左右两边的表达式同时为true,&运算结果为true
*/
// true && true-->true
boolean result1 = true && true;
System.out.println("true&&true:" + result1);// true&&true:true
// true && false-->true
boolean result2 = true && false;
System.out.println("true&&false:" + result2);// true&&false:false
// false && true-->true
boolean result3 = false && true;
System.out.println("false&&true:" + result3);// false&&true:false
// fasle && fasle-->false
boolean result4 = false && false;
System.out.println("false&&false:" + result4);// false&&false:false
/*
* ||运算规律:只要||左右两边有一个为true,||运算结果为true
* |运算规律:只要|左右两边有一个为true,|运算结果为true
*/
// true || true-->true
boolean result5 = true || true;
System.out.println("true||true:" + result5);// true||true:true
// true || false-->true
boolean result6 = true || false;
System.out.println("true||false:" + result6);// true||false:true
// false || true-->true
boolean result7 = false || true;
System.out.println("false||true:" + result7);// false||true:true
// fasle || fasle-->false
boolean result8 = false || false;
System.out.println("false||false:" + result8);// false||false:false
boolean bool1 = true;
boolean bool2 = false;
//!true:false
boolean result9 =!bool1;
System.out.println("!true:"+result1);//!true:false
//!false:true
boolean result10 = !bool2;
System.out.println("!false:"+result2);//!false:true
/*
* !运算规律:当表达式的值为true,进行!运算后,结果为false;当表达式的值为false,进行!运算后,结果为true
*
*/
}
}
package cn.bdqn.Day005;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入四位会员卡号");
int i = sc.nextInt();
System.out.println("您的会员卡号:"+i);
int ge= i %10;
int shi = i/10%10;
int bai = i/10/10%10;
int qian =i/10/10/10%10;
System.out.println("千位:"+qian+",百位:"+bai+",十位:"+shi+",个位:"+ge);
int sum =ge +shi+bai+qian;
System.out.println("会员卡上各个位上的数的和:"+sum);
String result =sum>20?"恭喜你中奖了":"很遗憾,没能中奖";
System.out.println(result);
}
}