日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ || && 逻辑短路问题

發布時間:2023/12/2 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ || && 逻辑短路问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


結論:“或”邏輯前面為1,“與”邏輯前面為0就會發生短路
1——或邏輯短路

include <stdio.h>

int main()
{
int a=5,b=6,c=7,d=8,m=2,n=2;
(m=a<b)||(n=c>d);
printf("%d\t%d",m,n);
}
輸出的結果為1,2.為什么呢,因為a<b,m=1,這個“或”邏輯就被“短路”掉了,后面的語句就沒被執行,所以n還是等于原先的2 ||只要有一個為1,結果就為1。因此短路.并且不計算(n=c>d);
2——與邏輯短路

include <stdio.h>

int main()
{
int a=5,b=6,c=7,d=8,m=2,n=2;
(m=a>b)&&(n=c>d);
printf("%d\t%d",m,n);
}
輸出的結果為0,2。因為a>b為0,m=0,整個“與”邏輯判斷就為“假”,所以后面的“c>d”就被短路掉了,所以n還是等于原先的2
&&只要有一個為0,都為0.因此計算機不計算(n=c>d);

另附:別人總結
邏輯與(&)和邏輯或(|):
標準的邏輯與(&)和邏輯或(|),不論第一個表達式為true or false,都計算第二個表達式。
例如:if (c==0 | e++ < 100) { d=12;} //不論c是否等于0,e都被自增量。

  • 短路與(&&)和短路或(||) A&&B, 當A為false時,不去計算B的值而直接返回false;當A為true時,計算B的值。 A || B,當A為true時, 不去計算B的值而直接返回true;當A為false時,計算B的值。
  • 3.應用比較
    短路&& 是很有用的。例如,下面的程序語句說明了短路邏輯運算符的優點,用它來防止被0除的錯誤:
    if (denom != 0 && num / denom > 10)
    既然用了短路與(&&) 運算符,就不會有當denom為0時產生的意外運行時錯誤。如果該行代碼使用標準與 運算符(&),它將對兩個運算數都求值,當出現被0除的情況時,就會產生運行時錯誤。

    既然短路運算符在布爾邏輯運算中有效,那么就在布爾邏輯運算中全用它,而標準的ANDOR運算符(只有一個字符)僅在位運算中使用。
  • Java四大運算符:算術運算符、位運算、關系運算、邏輯運算
    另外還有比較運算符(instanceof)

    A> 算術與位運算就不說了,一般不容易出錯B> 關系運算符: == > < <= >= !=關系運算的結果為boolean,只有truefalse,不像C/C++中,非0true0falseboolean flag= a<c; //這種寫法是正確的.例如: if(a == b) {} //如果是正確的,進行運算; 賦值運算符 = 是賦值的, 如: int a = 5; //不是 int a == 5;C> 布爾邏輯運算符布爾邏輯運算的運算數只能是布爾型,結果也為boolean型邏輯與(&)和邏輯或(|) 及 短路與(&&)和短路或(||) 的區別見上。
  • 總結

    以上是生活随笔為你收集整理的c++ || && 逻辑短路问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。