java中&和&&的區別和聯系


我想很多人在學習java的時候,或者其他語言(如:C#,.Net等)都會遇到

&和&&

然而,如果你沒有真正的理解他們的意思,這會給你思路上面帶來很大的麻煩

在這篇blog中,當你看完了以后,你會發現,很容易就把他們給區分開了

下面是我的demo

 1 /**
 2  * 
 3  */
 4 package com.b510.test;
 5 
 6 /**
 7  * @author Jone Hongten
 8  * @create date:2013-11-2
 9  * @version 1.0
10  */
11 public class Test {
12 
13     public static void main(String[] args) {
14         String str = null;
15         if(str != null && !"".equals(str)){
16             //do something
17         }
18         if(str != null & !"".equals(str)){
19             //do something
20         }
21     }
22 }

我們現在可能有一些模糊不清,現在我們先看看&和&&的電路問題:

對於:&&

if(str != null && !"".equals(str))

當: str != null 的時候,接下來才會去執行: !"".equals(str)

如果: str != null為false,那么這個時候,程序是處於短路的情況,則,!"".equals(str) 是不會執行的。

但是對於:&

if(str != null & !"".equals(str))

不管: str != null 的結果如何(即true,false),程序都會執行: !"".equal(str)

電路問題總結:

對於:&   -- >  不管怎樣,都會執行"&"符號左右兩邊的程序

對於:&& -- >  只有當符號"&&"左邊程序為真(true)后,才會執行符號"&&"右邊的程序。

下面來說說運算規則:

對於:&  -- >  只要左右兩邊有一個為false,則為false;只有全部都為true的時候,結果為true

對於:&& -- > 只要符號左邊為false,則結果為false;當左邊為true,同時右邊也為true,則結果為true

 

========================================================

More reading,and english is important.

I'm Hongten

 

大哥哥大姐姐,覺得有用打賞點哦!多多少少沒關系,一分也是對我的支持和鼓勵。謝謝。
Hongten博客排名在100名以內。粉絲過千。
Hongten出品,必是精品。

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

========================================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM