我想很多人在學習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
========================================================