騎豬闖天下

          J2ME隨筆,記錄成長的腳步

          統(tǒng)計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          [原創(chuàng)]邏輯與(&)和邏輯或(|) VS 短路與(&&)和短路或(||)

                  這個曾經(jīng)讓我分不清的兩個東東,今天專門拿出來做一小結(jié),以備日后查閱。并附Java四大運算符和比較運算符簡介。

          1.  邏輯與(&)和邏輯或(|):
                  標(biāo)準(zhǔn)的邏輯與(&)和邏輯或(|),不論第一個表達(dá)式為true or false,都計算第二個表達(dá)式。
                  例如:if (c==0 | e++ < 100)  { d=12;}     //不論c是否等于0,e都被自增量。

          2.  短路與(&&)和短路或(||)
                  A&&B, 當(dāng)A為false時,不去計算B的值而直接返回false;當(dāng)A為true時,計算B的值。
                  A || B,當(dāng)A為true時, 不去計算B的值而直接返回true;當(dāng)A為false時,計算B的值。

          3.應(yīng)用比較
                  短路&& 是很有用的。例如,下面的程序語句說明了短路邏輯運算符的優(yōu)點,用它來防止被0除的錯誤: 
                  if (denom != 0 && num / denom > 10)  
                  既然用了短路與(&&) 運算符,就不會有當(dāng)denom為0時產(chǎn)生的意外運行時錯誤。如果該行代碼使用標(biāo)準(zhǔn)與 運算符(&),它將對兩個運算數(shù)都求值,當(dāng)出現(xiàn)被0除的情況時,就會產(chǎn)生運行時錯誤。

                   既然短路運算符在布爾邏輯運算中有效,那么就在布爾邏輯運算中全用它,而標(biāo)準(zhǔn)的AND 和OR運算符(只有一個字符)僅在位運算中使用。


           4. Java四大運算符:算術(shù)運算符、位運算、關(guān)系運算、邏輯運算

              另外還有比較運算符(instanceof)

                      A>     算術(shù)與位運算就不說了,一般不容易出錯

                      B>     關(guān)系運算符:   ==    >     <     <=    >=    !=

                                  關(guān)系運算的結(jié)果為boolean,只有true和false,不像C/C++中,非0為true,0為false。
                                  boolean flag= a<c;  //這種寫法是正確的.
                                  例如: if(a == b) {}     //如果是正確的,進(jìn)行運算;

                                  賦值運算符 = 是賦值的,  如: int a = 5;        //不是 int a == 5;

                      C>     布爾邏輯運算符
                                布爾邏輯運算的運算數(shù)只能是布爾型,結(jié)果也為boolean型

                                 邏輯與(&)和邏輯或(|)  及   短路與(&&)和短路或(||) 的區(qū)別見上。

           <騎豬闖天下>                                                                                                                                                  

          posted on 2008-08-28 17:48 騎豬闖天下 閱讀(4122) 評論(2)  編輯  收藏

          評論

          # re: 邏輯與(&)和邏輯或(|) VS 短路與(&&)和短路或(||) 2008-08-29 21:45 謝冬冬

          很好理解,不錯!  回復(fù)  更多評論   

          # re: [原創(chuàng)]邏輯與(&)和邏輯或(|) VS 短路與(&&)和短路或(||) 2008-11-26 23:47 dran-ger

          謝謝樓主  回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 普安县| 桓仁| 乐陵市| 桃园县| 会泽县| 朝阳县| 宜良县| 穆棱市| 福清市| 白河县| 温泉县| 肃宁县| 大宁县| 闽侯县| 洪泽县| 松原市| 饶阳县| 阳原县| 屏东县| 双江| 拉萨市| 湖南省| 黄平县| 烟台市| 柳河县| 安多县| 方正县| 安宁市| 望都县| 渝北区| 霍林郭勒市| 邢台市| 南阳市| 平罗县| 杭锦后旗| 上饶县| 汕头市| 梁平县| 华坪县| 吴忠市| 谢通门县|