一、长路与

短路与

  • 无论长路与还是短路与
    • 两边的运算单元都是布尔值
    • 都为真时,才为真
    • 任意为假,就为假
  • 区别
    • 长路与 两侧,都会被运算
    • 短路与 只要第一个是false,第二个就不进行运算了

public class HelloWorld {

public static
void main(String[] args) {

//长路与  无论第一个表达式的值是true或者false,第二个的值,都会被运算

int i = 2;

System.out.println( i== 1 & i++ ==2  ); //无论如何i++都会被执行,所以i的值变成了3

System.out.println(i);

//短路与
只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了

int j = 2;

System.out.println( j== 1 && j++ ==2  );  //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2

System.out.println(j);

}

}

二、长路或 和 短路或

  • 无论长路或还是短路或
    • 两边的运算单元都是布尔值
    • 都为假时,才为假
    • 任意为真,就为真
  • 区别
    • 长路或 两侧都会被运算
    • 短路或 只要第一个是true的,第二个就不进行运算了

public class HelloWorld {

public static
void main(String[] args) {

//长路或  无论第一个表达式的值是true或者false,第二个的值,都会被运算

int i = 2;

System.out.println( i== 1 | i++ ==2  ); //无论如何i++都会被执行,所以i的值变成了3

System.out.println(i);

//短路或
只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了

int j = 2;

System.out.println( j== 2 || j++ ==2  );  //因为j==2返回true,所以右边的j++就没有执行了,所以j的值,还是2

System.out.println(j);

}

}

三、取反

取反!

真变为假

假变为真

public class HelloWorld {

public static
void main(String[] args) {

boolean b = true;

System.out.println(b); //输出true

System.out.println(!b);//输出false

}

}

四、异或

异或^

不同,返回真

相同,返回假

public class HelloWorld {

public static
void main(String[] args) {

boolean a = true;

boolean b = false;

System.out.println(a^b); //不同返回真

System.out.println(a^!b); //相同返回假

}

}

五、练习--逻辑运算符

题目:

int i = 1;

boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);

System.out.println(b);

System.out.println(i);

上述代码的输出结果是?

心算,不要丢到Eclipse中去!

官方答案:

public class HelloWorld {

public static
void main(String[] args) {

int i = 1;

boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);

//i值            2           3

//表达式           false       true

//              true    ^   true

//                      false

System.out.println(b);

System.out.println(i);

}

}

Java知识系统回顾整理01基础04操作符03逻辑运算符的更多相关文章

  1. Java知识系统回顾整理01基础04操作符01算术操作符

    一.算数操作符类别 基本的有: + - * / % 自增 自减: ++ -- 二.基本算数操作符 + - * / 基本的加 减 乘 除 public class HelloWorld { public ...

  2. Java知识系统回顾整理01基础04操作符06三元运算符

    一.三元运算符 表达式?值1:值2 如果表达式为真 返回值1 如果表达式为假 返回值2 if语句学习链接:if语句 public class HelloWorld { public static vo ...

  3. Java知识系统回顾整理01基础04操作符02关系操作符

    一.关系操作符 关系操作符:比较两个变量之间的关系  > 大于 >= 大于或等于 < 小于 <= 小于或等于 == 是否相等 != 是否不等 public class Hell ...

  4. Java知识系统回顾整理01基础04操作符07Scanner

    一.Scanner 需要用到从控制台输入数据时,使用Scanner类. 二.使用Scanner读取整数 注意: 使用Scanner类,需要在最前面加上 import java.util.Scanner ...

  5. Java知识系统回顾整理01基础04操作符05赋值操作符

    一.赋值操作 赋值操作的操作顺序是从右到左 int i = 5+5; 首先进行5+5的运算,得到结果10,然后把10这个值,赋给i public class HelloWorld { public s ...

  6. Java知识系统回顾整理01基础04操作符04位操作符

    一.位操作符 位操作符在实际工作中用的并不常见,但是我比较纠结这些位操作.所以实际练习位操作符的每一个操作符的操作实例来理解其具体含义. 建议: 如果确实感兴趣,就看看,个人建议跳过这个章节. 真正工 ...

  7. Java知识系统回顾整理01基础02面向对象03方法

    一.根据实例给出"方法"的定义 在LOL中,一个英雄可以做很多事情,比如超神,超鬼,坑队友 能做什么在类里面就叫做方法 比如队友残血正在逃跑,你过去把路给别人挡住了,导致他被杀掉. ...

  8. Java知识系统回顾整理01基础06数组03排序

    一.选择法排序 选择法排序的思路: 把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 比较完后,第一位就是最小的 然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个 ...

  9. Java知识系统回顾整理01基础01第一个程序04创建Eclipse项目

    一.为Eclipse设置桌面快捷方式图标 二.双击桌面快捷方式打开Eclipse 三.选择工作区 使用在命令行Hello World中的项目目录e:\project 除了第一次启动eclipse的时候 ...

随机推荐

  1. istio的安全(概念)

    Istio 安全(概念) 目录 Istio 安全(概念) 高层架构 Istio身份 身份和证书管理 认证 Mutial TLS认证 宽容(Permissive)模式 安全命名 认证架构 认证策略 策略 ...

  2. ReentrantLock特性

    1.中断 2.超时 3.公平 4.重入 5.多条件

  3. Asp.Net WebAPI的简介及创建

    一.WebAPI简介 ASP.NET Web API 是一种框架,用于轻松构建可以由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务.ASP.NET Web API 是一种用于在 .NET F ...

  4. Linux常用命令--不断更新

    Linux命令: !. 1.[root@loc8lhost/root]# 表示登陆进去系统,其中#是超级⽤用户也即root⽤用 户的系统提示符 #. 2.reboot命令可以重启系统 $. 3.关闭系 ...

  5. linux下P2P协议(BitTorrent)-libtorrent库编译,测试

    1.libtorrent 简介,下载和编译 libtorrent简介 libtorrent是功能齐全的C ++ bittorrent的p2p协议实现,专注于效率和可伸缩性.它可以在嵌入式设备和台式机上 ...

  6. C:把算术表达式分成Token

    代码: #include "stdafx.h" #include <stdio.h> #include <string.h> #include <st ...

  7. 原生 Java 客户端进行消息通信

    原生 Java 客户端进行消息通信 Direct 交换器 DirectProducer:direct类型交换器的生产者 NormalConsumer:普通的消费者 MulitBindConsumer: ...

  8. netty如何进行单元测试

    一种特殊的Channel 实现——EmbeddedChannel,它是Netty 专门为改进针对ChannelHandler 的单元测试而提供的. 将入站数据或者出站数据写入到EmbeddedChan ...

  9. LiteOS间歇计算技术:IOT终端真正感受“电量自由”

    摘要:LiteOS间歇计算为什么能使物联网终端实现长续航? 物联网设备.场景复杂多样,小到智能穿戴的耳机,大到大型基建设备,更有我们陌生而又熟悉场景,例如深海探测.森林监控.野生动物跟踪等等能量采集场 ...

  10. Linux下vim的安装及配置

    目录 一.vim的下载 二.vim的基本知识 三.vim的基本配置 四.vim与外部文件的复制粘贴 一.vim的下载 Ubuntu系统,输入命令: sudo apt install vim Cento ...