一、长路与

短路与

  • 无论长路与还是短路与
    • 两边的运算单元都是布尔值
    • 都为真时,才为真
    • 任意为假,就为假
  • 区别
    • 长路与 两侧,都会被运算
    • 短路与 只要第一个是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. Ingress-nginx 与 Nginx-ingress

    一.概述 Ingress-nginx:它是由Kubernetes社区基于Nginx Web服务器开发的,并补充了一组用于实现额外功能的Lua插件,作为“官方”默认控制器支持当然最优. Github:h ...

  2. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  3. The Triangle (简单动态规划)

    7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a program that calc ...

  4. SpringCloud入门 消息总线 Bus

    消息总线 1.概述 使用SpringCloud Bus配和Spring Cloud Config使用实现配置的动态刷新 Bus只支持消息处理:RabbitMQ和Kafaka. 能干嘛 能管理和传播分布 ...

  5. 开发者的福音,LR.NET模块化代码生成器

    代码生成器,是快速开发平台的核心功能之一,是一种用来帮助缺乏经验或者时间的开发者快速生成规范代码的工具,可以在极大程度上提升开发者的工作效率, 能有效避免重复工作.但稍有经验的开发者都明白,代码生成器 ...

  6. jinja2快速实现自定义的robotframework的测试报告

    一.背景 RF的结果报告可以方便我们查看每一条用例集.用例的执行结果统计,但是有的项目涉及到一些数据的比对,希望能够直观到看到数据,原生的测试报告就无法满足这个需求了. 原生的报告 项目需求报告格式 ...

  7. [LeetCode题解]79. 单词搜索

    题目描述 题目:79. 单词搜索 解题思路 遍历 首先找重复性,题目说给定单词是否存在于二维数组中,可以简化为从 (x, y) 走 n 步(n 表示单词长度),查看给定单词是否存在.然后再遍历二维数组 ...

  8. 菜鸟电子面单对接技术方案(link)

    一.背景 快递业务日新月异,收发快递是生活中不可缺少的一部分了,特别是做微商的商家,每天发送大量的快递.填写快递单已经成为过去式,快递小哥上门收件的时候,都使用手持的中端设备,再也不用客户填写快递单了 ...

  9. apply用法

    result.push.apply(result, document.getElementsByTagName(tag)); 但是,这里为什么要用apply呢? 因为document.getEleme ...

  10. JS基础回顾_滚动条

    // log function getScrollOffset() { if (window.pageXOffset) { return { x: window.pageXOffset, y: win ...