& 和& & 的區(qū)別
& 和& & 的區(qū)別
我想很多人在學(xué)習(xí)java的時候,或者其他語言(如:C#,.Net等)都會遇到&和&&。然而,如果你沒有真正的理解& 和& &的意思,這會給你思路上面帶來很大的麻煩,下面,小編給大家介紹& 和& & amp的區(qū)別,一起來看看小編為大家準(zhǔn)備的java中&和&&的區(qū)別例子吧。
&的意思
"&"就是'&'
因為&是轉(zhuǎn)義符號,沒有什么特別的意思
& = &
在HTML中的&用& 來表示
比如你要得到' '的字符串,而不是空格,那就用
&&的意思
&&是在編程中使用的一種符號。在Java和PHP,bat,c++,c語言中分別有著不同的含義。
1:&&在Java和PHP以及c#中都是邏輯操作符,也叫條件操作符。
2:&&在bat中順序執(zhí)行多條命令,執(zhí)行過程中如命令出錯則停止執(zhí)行之后的命令。
3:c++中也會用&&來指定一個rvalue的引用類型。
4:c語言中&&是一種雙目運算符,表示與運算,而當(dāng)左邊所給表達式或變量為0時,不再計算右側(cè),整個表達式為零。
&和&&的意義區(qū)別
&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當(dāng)運算符兩邊的表達式的結(jié)果都為true時,整個運算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false。
&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對于if(str != null && !str.equals(“”))表達式,當(dāng)str為null時,后面的表達式不會執(zhí)行,所以不會出現(xiàn)NullPointerException如果將&&改為&,則會拋出NullPointerException異常。If(x==33 & ++y>0) y會增長,If(x==33 && ++y>0)不會增長
&還可以用作位運算符,當(dāng)&操作符兩邊的表達式不是boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數(shù)進行&運算,來獲取該整數(shù)的最低4個bit位,例如,0x31 & 0x0f的結(jié)果為0x01。
& 和& &的使用區(qū)別
1、先看看&&,它是我們在程序設(shè)計中經(jīng)常用到的一個操作符,和||相對應(yīng),表示boolean的邏輯運算,當(dāng)使用&&運算符時 如果第一表達式為假就不再判斷第二表達式的真假,直接返回false;
例子:2>1 && 3>2返回true,2<1 && 100/0 == 1返回false;
2、在看看&,它是位運算符,什么意思呢,看個例子:
2&3=2;
具體分析為:
2的二進制為10
3的二進制為11
邏輯&之后為10;
通過&運算符還能解決一個問題:
現(xiàn)在給你一個數(shù)字,怎么判斷它是不是2的冪?
(b & (b-1)) == 0 就可以判斷
&運算符也可做與運算,但是它做與運算時不管第一表達式成立不成立都會去運算第二表達式;
例子:
1 > 2 & (5 - 1) > 6返回false;而2<1 & 100/0 == 1會拋出java.lang.ArithmeticException異常。
java中&和&&的區(qū)別舉例
1、java中&的示例
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&(i++<9)){
System.out.println(i);
System.out.println("恭喜,執(zhí)行完了條件語句!");
}
System.out.println(i);
}
}
從條件判斷語句來看,是不成立的,但是i是自加了兩次,有初始值3變成5。
2、java中&&的示例
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&&(i++<9)){
System.out.println(i);
System.out.println("恭喜,執(zhí)行完了條件語句!");
}
System.out.println(i);
}
}
從條件判斷語句來看是不成立的,變量i只自加了一次。
3、java中&和&&的區(qū)別總結(jié)
&和&&都是邏輯運算符,都是判斷兩邊同時真則為真,否則為假;但是&&當(dāng)?shù)谝粋€條件不成之后,后面的條件都不執(zhí)行了,而&則還是繼續(xù)執(zhí)行,直到整個條件語句執(zhí)行完為止。如&&例子中的i++>5被執(zhí)行了,而i++<9并沒有被執(zhí)行,這就是他們的差別。&例子中的i++>5和i++<9都被執(zhí)行了。
編程的相關(guān)文章: