java短路逻辑运算符实例用法详解_java

来源:脚本之家  责任编辑:小易  

1、说明

逻辑操作符执行短路求值。所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。

在使用逻辑操作符时,当两个操作数都是true时,结果是true,但当第一个操作是false时,结果必须是false,此时不再判断第二个操作。

2、实例

public static void main(String[] args) {
 int a = 5;//定义一个变量;
 boolean b = (a < 4) && (a++ < 10);
 //使用短路逻辑运算符的结果为false
 System.out.println("使用短路逻辑运算符的结果为" + b);
 //a的结果为5
 System.out.println("a的结果为" + a);
}

该程序使用短路逻辑逻辑运算符(&&),首先判断a<4的结果是false,b的结果是false,因此不再执行第二操作a++<10的判断,因此a的值为5。

知识点扩展:

Java 提供了两个在大多数其他计算机语言中没有的有趣的布尔运算符。这就是逻辑AND和逻辑OR的特殊的短路版本。
在逻辑OR的运算中,如果第一个运算数A为真,则不管第二个运算数B是真是假,其运算结果为真。

同样,在逻辑AND的运算中,如果第一个运算数A为假,则不管第二个运算数是真是假,其运算结果为假。

如果运用||和&&形式,而不是|和&,那么一个运算数就能决定表达式的值,Java的短路版本就不会对第二个运算数求值,只有在需要时才对第二个运算数求值。为完成正确的功能,当右边的运算数取决于左边的运算数是真或是假时,短路版本是很有用的。例如,下面的程序语句说明了短路逻辑运算符的优点,用它来防止被0除的错误:

if (denom != 0 && num / denom > 10)

既然用了短路AND运算符,就不会有当denom为0时产生的意外运行时错误。如果该行代码使用标准AND运算符(&),它将对两个运算数都求值,当出现被0除的情况时,就会产生运行时错误。

既然短路运算符在布尔逻辑运算中有效,那么就在布尔逻辑运算中全用它,而标准的AND和OR运算符(只有一个字符)仅在位运算中使用。然而,这条规则也有例外。例如,考虑下面的语句:

if(c==1 & e++ < 100) d = 100; 

到此这篇关于java短路逻辑运算符实例用法详解的文章就介绍到这了,更多相关java短路逻辑运算符是什么内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:Java中短路运算符与逻辑运算符示例详解Java 逻辑运算符中&&与&,||与|的区别

  • 本文相关:
  • jmeter常见函数使用方法汇总
  • springboot 实现mqtt物联网的示例代码
  • java实现zip,gzip,7z,zlib格式的压缩打包
  • spring boot中各个版本的redis配置问题详析
  • springboot使用rabbitmq延时队列(小白必备)
  • maven构建时跳过部分测试的实例
  • http中get和post的区别详解
  • spring boot 与 mybatis配置方法
  • java使用淘宝api读写json实现手机归属地查询功能代码
  • 使用 spring boot 实现 websocket实时通信
  • java短路逻辑与和短路逻辑或
  • java中的逻辑运算符&&,||,!各个怎么用?举个比较...
  • java中有类短路操作符&&与||,其实他们的短路作用...
  • java 运算符的用法和解释
  • java 的逻辑运算例子
  • java中的短路与(&&)、短路或(||) 与 逻辑与(&...
  • java里 短路或运算是什么意思啊?最好举个例子。另...
  • JAVA中的逻辑运算符!
  • JAVA逻辑运算符的使用
  • java 逻辑运算
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言r语言其它相关首页java中短路运算符与逻辑运算符示例详解java 逻辑运算符中&&与&,||与|的区别jmeter常见函数使用方法汇总springboot 实现mqtt物联网的示例代码java实现zip,gzip,7z,zlib格式的压缩打包spring boot中各个版本的redis配置问题详析springboot使用rabbitmq延时队列(小白必备)maven构建时跳过部分测试的实例spring boot 与 mybatis配置方法java使用淘宝api读写json实现手机归属地查询功能代码使用 spring boot 实现 websocket实时通信intellij idea 2020最新激活码(亲java使double保留两位小数的多方intellij idea 2020.2.3永久破解java8 十大新特性详解idea2020.2.2激活码与intellij ijava.net.socketexception: conn2020.2 intellij idea激活与ideaidea 2020版本最新破解教程可激活java写入文件的几种方法分享java 十六进制与字符串的转换java常用工具类之excel操作类及依赖包下载java文件操作工具类fileutil实例【文件增java scanner输入数字、字符串过程解析java将图片分割为几个部分示例java通过反射创建对象并调用方法java volatile应用单例模式实现过程解析java 多线程实现在线咨询(udp)spring boot中使用 spring security 构建java编程实现swing圆形按钮实例代码springboot自定义stater启动流程
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved