1. 程式人生 > >java入門學習(十一)邏輯運算子和位運算子

java入門學習(十一)邏輯運算子和位運算子

家裡有急事 暫停了幾天,抱歉,現在呢開始說說java的運算語句和運算子

如果想利用java的運算語句 那麼就離不開java的運算子,前面第九章講了java的算術運算子,那麼現在咱們說說java的邏輯運算子。特別強調一下

我在這裡說的是邏輯運算子而不是位運算子,至於什麼是位運算子 我後面章節在說。

java的邏輯運算子包括與、或、非,那麼咱們說說這四種邏輯運算子以及在運算語句的使用。

第一:與(&&)

先看下面程式碼

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println((a==6)&&(b==7));

System.out.println((a==6)&&(b==8));

System.out.println((a==1)&&(b==8));

}

首先宣告兩個變數a和b 並且把6和7賦值給a和b 然後 打印出來的一定是true false false,與(&&)是判斷的如果a 和b都為真 那麼就是真,如果其

中之一為假 生成的boolea值為false

它的中文意思 你也可以這樣理解且的意思 並且的意思,比如a=6&&b=7可以這樣理解:a的值為6並且b的值為7或者再宣告一個變數c=9;

如果程式碼寫成這樣:System.out.println((a==6)&&(b==7)&&(c==9)); 意思是a的值為6 並且b的值為7並且c的值為9滿足

所有才會生成一個布林值true,其中之一不滿足就會生成一個布林值false

第二:或(||)

先看下面程式碼:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println((a==6)||(b==7));
System.out.println((a==6)||(b==8));
System.out.println((a==8)||(b==7));
System.out.println((a==9)||(b==9));

}

列印結果為true true true false

或的意思是隻要其中一個符合 那麼生成的布林值便為true

第三:非(!)

首先看下面程式碼:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println(a!=6);
System.out.println(a!=12);
System.out.println(b!=7);
System.out.println(b!=90);

}

}

列印結果是

false
true
false
true

非的意思是和實實不符比如a實際上值為6那麼我說a的值不是6 我就可以用java程式碼說a!=6 我說錯了 程式就會給返回一個false的布林值

現在說說 位運算子

&&是短路運算子,&是非短路運算子
 
區別 例如 表示式A && B   如果A返回為false, 該表示式會直接返回false ,將不會再 對B做判斷,而&則無論A為什麼結果都會去對B進行判斷。
 
|| 與 |的區別和上面一樣,所以從效率上來講短路運算子的效率要高於非短路運算子

網上也有人這樣解釋我感覺非常合適:
位運算子:

    包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符

   以運算元12為例。位運算子將數字12視為1100。位運算子將運算元視為位而不是數值。數值

   可以是任意進位制的:十進位制、八進位制或十六進位制。位運算子則將運算元轉化為二進位制,並相應地返回1或0。

   位運算子將數字視為二進位制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:

   表示式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1

   表示式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。

   表示式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。

   表示式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反