一、长路与

短路与

  • 无论长路与还是短路与
    • 两边的运算单元都是布尔值
    • 都为真时,才为真
    • 任意为假,就为假
  • 区别
    • 长路与 两侧,都会被运算
    • 短路与 只要第一个是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. laravel+vue+vuetify 前端匹配不到数据记录 No matching records found

    后端数据:使用guzzle获取api数据,(安装扩展包guzzle) use GuzzleHttp\Client; //获取请求远程产品信息需要的参数public function getParams ...

  2. js 向上滚屏

    <!doctype html><html><head><meta charset="utf-8"><title>< ...

  3. 起redis服务时报错Creating Server TCP listening socket *:6379: bind: No such file or directory

  4. JWT伪造攻击

    JWT修改伪造攻击 什么是JWT? JSON Web Token(JSON Web令牌)是一种跨域验证身份的方案.JWT不加密传输的数据,但能够通过数字签名来验证数据未被篡改(但是做完下面的WebGo ...

  5. 【转】PHP面试总结

    文章出处:https://www.cnblogs.com/codetao/p/6418127.html

  6. QEMU 虚拟机网卡探究

    前述 我们知道无论是VMware,Virtual Box还是HyperV 都支持 NAT/Bridge/Host-Only 三种上网方式.其中 NAT 是我最常用,最熟悉的. 需要说明的是,无论是NA ...

  7. JavaScript闭包函数的理解

    闭包就是一个函数能够访问其函数外部作用域中的变量,即在外面可以调用函数中的函数的变量,其实他就是将函数内外部连接起来的桥梁 闭包三大特点: 1. 函数嵌套函数 2. 内部函数可以访问外部函数的变量 3 ...

  8. 学习 | jQuery全屏滚动插件FullPage.js

    简介 fullPage.js是一个基于jQuery的全屏滚动插件,它能够很方便.很轻松的制作出全屏网站. 主要功能 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 C ...

  9. Ajax每隔2秒自动请求服务端刷新页面

    1. window.onload = function () {automatic(); } 2. function automatic(){ //每隔两秒刷新一次页面setTimeout(autom ...

  10. Java垃圾回收System.gc()的理解

    System.gc()无法保证GC一定执行 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收 ...