逻辑与和逻辑或的执行顺序
背景
開發(fā)過程中,我們經(jīng)常用的最多的就是條件表達(dá)式了,我們知道&&表示邏輯與,代表兩個(gè)條件都必須滿足才會(huì)執(zhí)行。而||代表邏輯邏輯或,即表示兩種只有一個(gè)滿足即可。
關(guān)于邏輯與和或的執(zhí)行順序,因?yàn)橛泻荛L(zhǎng)一段時(shí)間沒寫代碼了,今天在寫&&和||邏輯時(shí)突然有點(diǎn)蒙圈,關(guān)于其執(zhí)行順序稍微有不確定。
邏輯與的順序
當(dāng)用 if (A && B ) { // 代碼執(zhí)行 } 這一樣代碼時(shí),會(huì)先執(zhí)行邏輯A,如果A是真的話,此時(shí)if判斷邏輯成立,不會(huì)執(zhí)行邏輯B,直接進(jìn)入代碼區(qū)執(zhí)行。如果A是假,那會(huì)繼續(xù)執(zhí)行判斷B,如果B是真,此時(shí),此時(shí)if判斷邏輯成立并進(jìn)入代碼區(qū)執(zhí)行。
這樣的判斷邏輯,應(yīng)該是我們經(jīng)常會(huì)用到的,可以100%確認(rèn),其執(zhí)行順序是從左到右,左邊只要一成立,右邊不會(huì)執(zhí)行。
邏輯或的順序
那么對(duì)于邏輯或的執(zhí)行順序呢是否也一樣,因?yàn)檫壿嫽虺闪⒅灰獌烧咂渲幸粋€(gè)是真就if判斷成立,所以此時(shí)我有點(diǎn)不是很確信它的執(zhí)行邏輯是否也是從左到右,一旦成立就右邊不執(zhí)行。
我們直接用代碼來驗(yàn)證下吧。(以下是用OC方法驗(yàn)證的,像其他語(yǔ)言如Java、JavaScript、C等邏輯都是一樣的)
- (void)demo1{if ([self function1] || [self function2]) {NSLog(@"邏輯1");} else {NSLog(@"邏輯2");} }- (BOOL)function1{NSLog(@"%s",__FUNCTION__);return YES; }- (BOOL)function2{NSLog(@"%s",__FUNCTION__);return NO; }看下控制器Log輸出
2022-04-02 21:38:57.445827+0800 test[1321:2488493] -[ViewController function1] 2022-04-02 21:38:57.445984+0800 test[1321:2488493] 邏輯1結(jié)論
很明顯,||邏輯或和邏輯與的執(zhí)行順序也是一樣的,從左到由執(zhí)行,一旦左邊成立,右邊不會(huì)執(zhí)行判斷。
總結(jié)
以上是生活随笔為你收集整理的逻辑与和逻辑或的执行顺序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 数据库一体机:zData
- 下一篇: 图片码