欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java短路邏輯運(yùn)算符實(shí)例用法詳解

 更新時(shí)間:2021年04月07日 07:53:24   作者:小妮淺淺  
在本篇文章里小編給大家分享的是一篇關(guān)于java短路邏輯運(yùn)算符實(shí)例用法內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。

1、說明

邏輯操作符執(zhí)行短路求值。所謂短路,就是當(dāng)一個(gè)參與運(yùn)算的操作數(shù)足以推斷該表達(dá)式的值時(shí),另一個(gè)操作數(shù)(可能是表達(dá)式)就不會(huì)執(zhí)行。

在使用邏輯操作符時(shí),當(dāng)兩個(gè)操作數(shù)都是true時(shí),結(jié)果是true,但當(dāng)?shù)谝粋€(gè)操作是false時(shí),結(jié)果必須是false,此時(shí)不再判斷第二個(gè)操作。

2、實(shí)例

public static void main(String[] args) {
 int a = 5;//定義一個(gè)變量;
 boolean b = (a < 4) && (a++ < 10);
 //使用短路邏輯運(yùn)算符的結(jié)果為false
 System.out.println("使用短路邏輯運(yùn)算符的結(jié)果為" + b);
 //a的結(jié)果為5
 System.out.println("a的結(jié)果為" + a);
}

該程序使用短路邏輯邏輯運(yùn)算符(&&),首先判斷a<4的結(jié)果是false,b的結(jié)果是false,因此不再執(zhí)行第二操作a++<10的判斷,因此a的值為5。

知識(shí)點(diǎn)擴(kuò)展:

Java 提供了兩個(gè)在大多數(shù)其他計(jì)算機(jī)語言中沒有的有趣的布爾運(yùn)算符。這就是邏輯AND和邏輯OR的特殊的短路版本。
在邏輯OR的運(yùn)算中,如果第一個(gè)運(yùn)算數(shù)A為真,則不管第二個(gè)運(yùn)算數(shù)B是真是假,其運(yùn)算結(jié)果為真。

同樣,在邏輯AND的運(yùn)算中,如果第一個(gè)運(yùn)算數(shù)A為假,則不管第二個(gè)運(yùn)算數(shù)是真是假,其運(yùn)算結(jié)果為假。

如果運(yùn)用||和&&形式,而不是|和&,那么一個(gè)運(yùn)算數(shù)就能決定表達(dá)式的值,Java的短路版本就不會(huì)對(duì)第二個(gè)運(yùn)算數(shù)求值,只有在需要時(shí)才對(duì)第二個(gè)運(yùn)算數(shù)求值。為完成正確的功能,當(dāng)右邊的運(yùn)算數(shù)取決于左邊的運(yùn)算數(shù)是真或是假時(shí),短路版本是很有用的。例如,下面的程序語句說明了短路邏輯運(yùn)算符的優(yōu)點(diǎn),用它來防止被0除的錯(cuò)誤:

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

既然用了短路AND運(yùn)算符,就不會(huì)有當(dāng)denom為0時(shí)產(chǎn)生的意外運(yùn)行時(shí)錯(cuò)誤。如果該行代碼使用標(biāo)準(zhǔn)AND運(yùn)算符(&),它將對(duì)兩個(gè)運(yùn)算數(shù)都求值,當(dāng)出現(xiàn)被0除的情況時(shí),就會(huì)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。

既然短路運(yùn)算符在布爾邏輯運(yùn)算中有效,那么就在布爾邏輯運(yùn)算中全用它,而標(biāo)準(zhǔn)的AND和OR運(yùn)算符(只有一個(gè)字符)僅在位運(yùn)算中使用。然而,這條規(guī)則也有例外。例如,考慮下面的語句:

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

到此這篇關(guān)于java短路邏輯運(yùn)算符實(shí)例用法詳解的文章就介紹到這了,更多相關(guān)java短路邏輯運(yùn)算符是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot?異步任務(wù)和定時(shí)任務(wù)的異步處理

    Springboot?異步任務(wù)和定時(shí)任務(wù)的異步處理

    本文介紹了Springboot異步任務(wù)和定時(shí)任務(wù)的異步處理,Springboot?中,異步任務(wù)和定時(shí)任務(wù)是經(jīng)常遇到的處理問題方式,為了能夠用好這兩項(xiàng)配置,不干擾正常的業(yè)務(wù),需要對(duì)其進(jìn)行異步化配置。怎么設(shè)置合理的異步處理線程就是其核心和關(guān)鍵,下文詳情需要的朋友可以參考下
    2022-05-05
  • Java線程同步及實(shí)現(xiàn)方法詳解

    Java線程同步及實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Java線程同步及實(shí)現(xiàn)方法詳解,當(dāng)我們有多個(gè)線程要同時(shí)訪問一個(gè)變量或?qū)ο髸r(shí),如果這些線程中既有讀又有寫操作時(shí),就會(huì)導(dǎo)致變量值或?qū)ο蟮臓顟B(tài)出現(xiàn)混亂,從而導(dǎo)致程序異常,需要的朋友可以參考下
    2023-11-11
  • java application maven項(xiàng)目打自定義zip包實(shí)例(推薦)

    java application maven項(xiàng)目打自定義zip包實(shí)例(推薦)

    下面小編就為大家?guī)硪黄猨ava application maven項(xiàng)目打自定義zip包實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java zookeeper服務(wù)的使用詳解

    Java zookeeper服務(wù)的使用詳解

    ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等
    2022-08-08
  • SpringBoot集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息

    SpringBoot集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息

    在一次項(xiàng)目開發(fā)中,使用到了Netty網(wǎng)絡(luò)應(yīng)用框架,以及MQTT進(jìn)行消息數(shù)據(jù)的收發(fā),這其中需要后臺(tái)來將獲取到的消息主動(dòng)推送給前端,所以本文記錄了SpringBoot集成WebSocket實(shí)現(xiàn)后臺(tái)向前端推送信息的操作,需要的朋友可以參考下
    2024-02-02
  • logback-spring.xml的配置及示例詳解(直接復(fù)制粘貼可用)

    logback-spring.xml的配置及示例詳解(直接復(fù)制粘貼可用)

    在使用logback作為日志框架時(shí),可以創(chuàng)建一個(gè)名為logback-spring.xml的配置文件來自定義日志輸出的格式和方式,下面這篇文章主要給大家介紹了關(guān)于logback-spring.xml的配置及示例詳解的相關(guān)資料,文中的代碼直接復(fù)制粘貼可用,需要的朋友可以參考下
    2024-01-01
  • Arthas-java程序運(yùn)行時(shí)debug工具使用

    Arthas-java程序運(yùn)行時(shí)debug工具使用

    這篇文章主要介紹了Arthas-java程序運(yùn)行時(shí)debug工具使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java中HashMap的初始容量設(shè)置方式

    Java中HashMap的初始容量設(shè)置方式

    這篇文章主要介紹了Java中HashMap的初始容量設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • IDEA中打jar包的2種方式(Maven打jar包)

    IDEA中打jar包的2種方式(Maven打jar包)

    這篇文章主要給大家介紹了關(guān)于IDEA中打jar包的2種方式,分別是不使用Maven直接打Jar包與使用Maven打jar包的兩種方法,需要的朋友可以參考下
    2021-05-05
  • SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用

    SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用

    EhCache?是一個(gè)純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點(diǎn)。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本
    2022-08-08

最新評(píng)論