`
isiqi
  • 浏览: 16042763 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java 短路运算符和非短路运算符

阅读更多
基础

短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。

class Logic{
public ststic void main(String[] args){
int a=1;
int b=1;
if(a<b && b<a/0){
System.out.println("Oh,That's Impossible!!!");
}else{
System.out.println("That's in my control.");
}
}
}
“&&”运算符检查第一个表达式是否返回“false”,如果是“false”则结果必为“false”,不再检查其他内容。
“a/0”是个明显的错误!但短路运算“&&”先判断“a<b”,返回“false”,遂造成短路,也就不进行“a/0”操作了,程序会打出"That's in my control."。这个时候,交换一下“&&”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。

class Logic{
public ststic void main(String[] args){
int a=1;
int b=1;
if(a==b || b<a/0){
System.out.println("That's in my control.");
}else{
System.out.println("Oh,That's Impossible!!!");
}
}
}

“||”运算符检查第一个表达式是否返回“true”,如果是“true”则结果必为“true”,不再检查其他内容。
“a/0”是个明显的错误!但短路运算“||”先执行“a==b”判断,返回“true”,遂造成短路,也就不进行“a/0”操作了,程序会打出"That's in my control."。这个时候,交换一下“||”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。


非短路运算符包括 “& 与”、“| 或”、“^ 异或”,一般称为“逻辑操作”

class Logic{
public ststic void main(String[] args){
int a=1;
int b=1;
if(a<b & b<a/0){
System.out.println("Oh,That's Impossible!!!");
}else{
System.out.println("That's in my control.");
}
}
}
“&”运算符不会造成短路,它会认认真真的检查每一个表达式,虽然“a<b”已经返回“flase”了,它还是会继续检查其他内容,以至于最终抛出异常“java.lang.ArithmeticException: 
/ by zero”。

/ by zero”。

class Logic{
public ststic void main(String[] args){
int a=1;
int b=1;
if(a==b | b<a/0){
System.out.println("That's in my control.");
}else{
System.out.println("Oh,That's Impossible!!!");
}
}
}
同理,“|”运算符也不会造成短路,虽然“a==b”已经返回“true”了,它还是会继续检查其他内容,以至于最终抛出异常“java.lang.ArithmeticException: / by zero”。

“^”运算符道理是一样的,就不在这里罗索了。

最后。短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。
分享到:
评论

相关推荐

    Java 短路运算符和非短路运算符详解

    Java 短路运算符和非短路运算符详解 非常详细, 易于理解

    34.java短路逻辑运算符.zip

    34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip...

    Java中短路与和与,短路或和或逻辑运算符区别.pdf

    Java中短路与和与,短路或和或逻辑运算符区别.pdf 学习资料 复习资料 教学资源

    java逻辑运算符的作用

    逻辑运算符 &&、 ||、 ! 注意:逻辑计算支持短路操作 表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65 &&:与运算,含义是两个条件必须同时成立,可以翻译为并且 ||:或运算,含义是两个条件中成立一个...

    结合短路法和逗号表达式,代替if和三目运算符

    C/C++系列语言中,if-else语句是最主要的条件分支语句,本文主要谈了结合短路法和逗号表达式,代替if和三目运算符。

    JS逻辑运算符短路操作实例分析

    本文实例分析了JS逻辑运算符短路操作。分享给大家供大家参考,具体如下: js逻辑运算符有三个:逻辑非!、逻辑与&&、逻辑或||。 所谓短路操作就是,当&&的第一个操作数的值是false时,直接返回第一个操作数的值,不再...

    Java逻辑运算符

    Java中的逻辑运算符包括逻辑与&,逻辑或|,逻辑非!逻辑异或^,除此之外还有几个比较相似的&&短路与,||短路或。  那么这几个逻辑运算符到底有什么意思呢?下面我们来看看  首先看逻辑与&的用法,只有两个都为真...

    java代码-逻辑运算符

    java代码-逻辑运算符

    10个java主题

    10个JAVA主题,Item 1: 什么... 避免落入隐藏变量成员的陷阱 Item 7: 提前 Item 8: 设计可继承的构造函数 Item 9: 通过引用传递基本类型 Item 10: 布尔运算符与短路运算符本

    Java程序设计基础:逻辑运算符.pptx

    逻辑非 a为true时,值为false,a为false时,值为true。 !(2&gt;4) true && a&&b 短路与 a、b全为true时,计算结果为true,否则为false。 2&gt;1&&3 true || a||b 短路或 a、b全为false时,计算结果为 false,否则为true。 ...

    C语言程序设计-其他运算符与表达式.pptx

    关系表达式,是关系运算符将两个表达式连接起来的式子,结果为非“真”即“假”。 关系表达式的一般形式为: &lt;表达式&gt;关系运算符&gt;&lt;表达式&gt; 如: a+b&gt;c-d x&gt;3/2 6-3 关系运算符与关系表达式 注意: 逻辑表达式中可以...

    Java基础知识点.html

    跳转控制语句 三元运算符 逻辑运算符 短路逻辑运算符 数组 方法简述 switch语句 if语句 关系运算符 自增自减运算符 赋值运算符 算术运算符 类型转换 Java简述 标识符 变量 数据类型 常量 关键字

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-080-Java基本语法-运算符-逻辑运算符-异或操作与非操作.avi 北京动力节点-Java编程零基础教程-081-Java基本语法-运算符-条件运算符.avi 北京动力节点-Java编程零基础教程-082-...

    java-a-course-for-beginners:初学者Java编程教程

    Java运算符-Java赋值运算符,关系和逻辑运算符,短路运算符 Java条件和If语句 方法-参数,参数和返回值 Java平台概述-Java,Javac,字节码,JVM和平台独立性-JDK,JRE和JVM 面向对象编程-类,对象,状态和行为 OOPS...

    JAVA面试大全(2018整理版)

    &和&&的区别? 虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,...注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强53-进逻辑运算符的短路特性.wmv

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强53-进逻辑运算符的短路特性.wmv

    asp.net运算符之逻辑运算符以及其他运算符介绍与实例

    false true && AND(短路) false&&true false || OR(短路) false||true true 下面对一些比较容易出现问题进行简单解释: 1、“^“ 将计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true时,结果才为...

    布尔逻辑运算符

    表4-5 布尔逻辑运算符及其意义 运算符 含义 & 逻辑与 逻辑或 ^ 异或 短路或 && 短路与 ! 逻辑反 &= 逻辑与赋值(赋值的简写形式) = 逻辑或赋值(赋值的简写形式) ^= 异或赋值(赋值的简写形式) == 相等 != 不...

    面试题JavaSE语法.docx

    & 和 && 的区别 &运算符有两种用法:(1)按位与;(2)逻辑与。 &&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两...注意:逻辑或运算符(|) 和短路或运算符(||)的差别也是如此。

Global site tag (gtag.js) - Google Analytics