运算符--逻辑运算符

逻辑运算符

特点:逻辑运算符两边一般是boolean类型的数据或者是表达式。

总结:&,|,^,!

  • &逻辑与运算符:左右两边有一个是false ,则输出结果为false。
  • | 逻辑或运算符:左右两边有一个是true,则输出结果为true。
  • ^ 逻辑异或运算符:左右两边Boolean类型相同,输出结果为是false,左右两边Boolean类型不相同,输出结果为是true。
  • ! 逻辑非运算符:将Boolean类型的值取反,并输出。(true变成false,false变成true)

程序举例

public class OptLuoJiDemo1 {

public static void main(String[] args) {

int a = 3;

int b = 4;

int c = 5;

 // & 逻辑与运算

System.out.println((a>c) & (a>b));        // false & false = false

System.out.println((a>b) & (a<c));        // false & true = false

System.out.println((a<b) & (a>c));        // true & false = false

System.out.println((a<b) & (a<c));        // true & true = true

//  | 逻辑或运算

System.out.println((a>c) | (a>b));          // false | false = false

System.out.println((a>b) | (a<c));          // false | true = true

System.out.println((a<b) | (a>c));          // true | false = true

System.out.println((a<b) | (a<c));          // true | true = true

//   ^ 逻辑异或运算

System.out.println((a>c) ^ (a>b));         // false ^ false = false

System.out.println((a>b) ^ (a<c));         // false ^ true = true

System.out.println((a<b) ^ (a>c));         // true ^ false = true

System.out.println((a<b) ^ (a<c));         // true ^ true = false

//  ! 逻辑非运算

System.out.println(!((a<b) ^ (a>c)));      // true ^ false = true

System.out.println(!((a<b) ^ (a<c)));      // true ^ true = false

}

}

总结:&&,||

  • &&逻辑双与运算符(又称为短路与):1、单纯从输出结果上来看,&&与&的结果是一样的。2、&&左边如果是false,输出结果就是false,不会执行右边的内容。
  • ||逻辑双或运算符(又称为短路或):1、单纯从输出结果上来看,|| 与 | 的结果是一样的。2、||  左边如果为true的时候,输出结果就是true,不会执行右边的内容。

程序举例

public class OptLuojiDemo2 {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;

System.out.println((a>c) & (a>b));      // false & false = false
System.out.println((a>b) & (a<c));      // false & true = false
System.out.println((a<b) & (a>c));      // true & false = false
System.out.println((a<b) & (a<c));      // true & true = true

//逻辑双与操作
System.out.println((a > c) && (a > b));      // false && false = false
System.out.println((a > b) && (a < c));      // false && true = false
System.out.println((a < b) && (a > c));      // true && false = false
System.out.println((a < b) && (a < c));      // true && true = true

 

int x = 3;
int y = 4;

 

boolean bool1 = ((x++ == 3) & (y++ ==4));
System.out.println(bool1);                                 // & 两边都是true,所以输出结果bool1为true。
System.out.println(x);                                        //  ++在x后面,所以先做关系运算符==,之后在自增1。x输出结果为4。
System.out.println(y);                                       //同理

boolean bool2 = ((x++ == 5) && (y++ ==4));    
System.out.println(bool2);                                 // && 输出Boolean类型的结果和 & 一样。false && true➡false。
System.out.println(x);                                        //  ++在x后面,所以先做关系运算符==,之后在自增1。x输出结果为4。
System.out.println(y);                                        // && 左边值为false ,所以右边内容不执行。输出y=4。

boolean bool3 = ((x++ == 5) | (y++ ==4));
System.out.println(bool3);                               //  |  左边是false ,右边是true。所以输出结果为true。
System.out.println(x);                                      //输出x=4
System.out.println(y);                                      //输出y=5

boolean bool4 = ((x++ == 3) || (y++ == 8));
System.out.println(bool4);                              //   ||  左边是true,右边是false。所以输出结果是true。
System.out.println(x);                                     //输出x=4
System.out.println(y);                                     //  因为 || 左边结果是true,所以右边内容不执行。输出y=4。

}
}

注意:

在Java中不可以写成3<x<6,应该写成x>3 & x<6。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值