一、长路与

短路与

  • 无论长路与还是短路与
    • 两边的运算单元都是布尔值
    • 都为真时,才为真
    • 任意为假,就为假
  • 区别
    • 长路与 两侧,都会被运算
    • 短路与 只要第一个是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. vue项目在执行npm install时报错

    npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning ETIMEDOU ...

  2. vue的computed属性的理解

    computed: { selectedQuestions() { let selectedQuestions = this.editedItem.questions; return this.que ...

  3. Docker 网络模式详解及容器间网络通信

    当项目大规模使用 Docker 时,容器通信的问题也就产生了.要解决容器通信问题,必须先了解很多关于网络的知识.Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜 ...

  4. 在react项目添加看板娘(react-live2d)

    有留意到看板娘这么个东西,简直就是我们程序员+动漫迷的挚爱.但是回观网上,大多只是在老旧的html的静态引入.vue甚至也有几个不怎么维护的,还是老旧的不行的SDK2.X的版本.这这这这!我们的rea ...

  5. 图像通道、RGB与色彩体系

    通道(Channels) 图像的通道指的是什么?是不是灰度图的通道数为1,彩色图的通道为3 ? 图像通道,在RGB色彩模式下就是指那单独的红色.绿色.蓝色部分.也就是说,一幅完整的图像,是由红色绿色蓝 ...

  6. 在MyBatis中采用模糊查询变量的引用标志应当是$而不是#

    具体如下例: @Select("select count(*) from hy_stock where name like '%${keyword}%' or code like '%${k ...

  7. Docker启动失败

    报错信息: Job for docker.service failed because the control process exited with error code. See "sy ...

  8. Require.js中的路径在IDEA中的最佳实践

    本文主要讲述require.js在IDEA中路径智能感知的办法和探索中遇到的问题. 测试使用的目录结构:一种典型的thinkphp 6的目录结构,如下图. 现在我通过在 vue-a.js 中运用不同的 ...

  9. java多版本管理

    背景 java版本的升级也比较频繁, 每年一个版本或更多 虽然java环境变量的配置无技术性可言, 但对于频繁切换也是比较枯燥的 java版本管理工具 sdkman: https://sdkman.i ...

  10. TomcatAJP文件包含漏洞

    漏洞概述 2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布关于Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2 ...