一、长路与

短路与

  • 无论长路与还是短路与
    • 两边的运算单元都是布尔值
    • 都为真时,才为真
    • 任意为假,就为假
  • 区别
    • 长路与 两侧,都会被运算
    • 短路与 只要第一个是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. 跟我一起学.NetCore之日志作用域及第三方日志框架扩展

    前言 上一节对日志的部分核心类型进行简单的剖析,相信现在再使用日志的时候,应该大概知道怎么一回事了,比如记录器是怎么来的,是如何将日志内容写入到不同目的地的等:当然还有很多细节没深入讲解,抽时间小伙伴 ...

  2. csp201909-2小明种苹果续

    /* 定义输入N 二维数组 输出T总数 D掉落棵树 E掉落组数 定义last记录上次掉落的编号,flag=1表示两次连续掉落,不掉落归零 spec=1表示1 2都掉落了,spec=2表示只有1掉落 对 ...

  3. 终于有架构师用401页PDF+194张图表把设计模式讲明白了

    十几年来,IT 界也发生了翻天覆地的变化,各种开源框架层出不穷,机器学习大兴其道.但是,在面向对象编程中,设计模式的重要性却不曾改变.与以前一样,在大规模的企业系统开发中,Java和C#仍处于主导地位 ...

  4. APM姿态控制流程

    对初学者了解控制流程有一定帮助 在主循环执行过程中(比如Pixhawk的任务调度周期2.5ms,400Hz:APM2.x为10ms,100Hz),每一个周期,程序会按下述步骤执行:• 首先,高层次文件 ...

  5. 【Android】Android开发小功能,倒计时的实现。时间计时器倒计时功能。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  6. 阿里Java中级开发测试相关试题及答案

    ------------恢复内容开始------------ 1.JSP文件上传的HTML标签代码定义是? A. <input type="text" name=" ...

  7. C++轻量级跨平台文件系统API

    http://en.cppreference.com/w/cpp/experimental/fs https://www.starmessagesoftware.com/cpcclibrary htt ...

  8. java初探(1)之秒杀的安全

    在秒杀的场景中还存在着很多的安全问题 暴露秒杀地址 秒杀请求可以很频繁 接口流量大,恶意刷接口 隐藏秒杀接口 为什么需要隐藏,事实上,页面上的所有东西都能被客户端拿到,包括js代码,因此,分析商品详情 ...

  9. Resis常用命令及数据类型

    1.下载Windows环境redis安装: 2.下载jar包: commons-pool2-2.4.2.jar jedis-2.9.0.jar 3.项目结构: 4.代码说明: package com. ...

  10. Java8 Strean api

    Stream 遍历数据集的高级迭代器.使用StreamApi让代码: 声明式:更简洁,更易读: 可复合:更灵活: 可并行:性能更好: 使用流 流的使用一般包括三件事: 一个数据源(如集合)来执行一个查 ...