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

 更新时间:2021年04月07日 07:53:24   作者:小妮浅浅  
在本篇文章里小编给大家分享的是一篇关于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实现秒表功能

    这篇文章主要为大家详细介绍了java实现秒表功能,利用javax.swing.Timer类设计实现秒表应用程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • Java正则验证正整数的方法分析【测试可用】

    Java正则验证正整数的方法分析【测试可用】

    这篇文章主要介绍了Java正则验证正整数的方法,结合实例形式对比分析了java针对正整数的验证方法及相关注意事项,需要的朋友可以参考下
    2017-08-08
  • Java基础篇之对象数组练习

    Java基础篇之对象数组练习

    对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了,这篇文章主要给大家介绍了关于Java基础篇之对象数组练习的相关资料,需要的朋友可以参考下
    2024-03-03
  • Java编程线程同步工具Exchanger的使用实例解析

    Java编程线程同步工具Exchanger的使用实例解析

    这篇文章主要介绍了Java编程线程同步工具Exchanger的使用实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java中的CountDownLatch原理深入解析

    Java中的CountDownLatch原理深入解析

    这篇文章主要介绍了Java中的CountDownLatch原理深入解析,CountDownLatch是多线程控制的一种同步工具类,它被称为门阀、 计数器或者闭锁,这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信,需要的朋友可以参考下
    2024-01-01
  • SpringBoot中的JPA(Java Persistence API)详解

    SpringBoot中的JPA(Java Persistence API)详解

    这篇文章主要介绍了SpringBoot中的JPA(Java Persistence API)详解,JPA用于将 Java 对象映射到关系型数据库中,它提供了一种面向对象的方式来操作数据库,使得开发者可以更加方便地进行数据持久化操作,需要的朋友可以参考下
    2023-07-07
  • Java 二维数组创建及使用方式

    Java 二维数组创建及使用方式

    这篇文章主要介绍了Java 二维数组创建及使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 浅析SpringCloud Alibaba-Nacos 作为注册中心示例代码

    浅析SpringCloud Alibaba-Nacos 作为注册中心示例代码

    这篇文章主要介绍了SpringCloud Alibaba-Nacos 作为注册中心示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • idea在工具栏中显示快速创建包和类的图标的详细步骤

    idea在工具栏中显示快速创建包和类的图标的详细步骤

    点击需要创建包或者类的位置,在点击对用的图标就可以快速创建类或者包了,下面小编给大家介绍idea在工具栏中显示快速创建包和类的图标的详细步骤,感兴趣的朋友一起看看吧
    2024-02-02
  • ​​​​​​​Spring多租户数据源管理 AbstractRoutingDataSource

    ​​​​​​​Spring多租户数据源管理 AbstractRoutingDataSource

    本文技术了​​​​​​​Spring多租户数据源管理 AbstractRoutingDataSource,下文详细内容介绍,需要的小伙伴可以参考一下
    2022-05-05

最新评论