中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的運算符有幾類

發布時間:2020-06-18 17:05:25 來源:億速云 閱讀:123 作者:元一 欄目:編程語言

運算符指明對操作數的運算方式。組成表達式的Java操作符有很多種。運算符按照其要求的操作數數目來分,可以有單目運算符、雙目運算符和三目運算符,它們分別對應于1個、2個、3個操作數。運算符按其功能來分,有算術運算符、賦值運算符、關系運算符、邏輯運算符、位運算符和其他運算符。

比較(關系)運算符,邏輯運算符 ,位運算符,三元(三目)運算符

1)比較(關系)運算符

,<,>=,<=,      ==(使用居多)
運算符連接的表達式無論是簡單還是復雜,結果最終都是boolean類型
舉例:

int a = 10 ;
int b = 20 ;        
boolean result = (a==b) ; //a ≠ b 
System.out.println("輸出結果為:"+result);//輸出結果為:false

2)邏輯運算符 (開發中使用)
基本邏輯符號
邏輯單與&
邏輯單或|
邏輯異或^
邏輯非!        
擴展的(重點)
邏輯雙與&&
邏輯雙或||                
舉例:

//定義三個變量
int a = 3 ;
int b = 4 ;
int c = 5 ;

//邏輯單與&
System.out.println((a>c)&(b>c)) ;//false & false -->false
System.out.println((a>c)&(b<c)) ;//false & true  -->false
System.out.println((a<c)&(b>c)) ;//true  & false -->false
System.out.println((a<c)&(b<c)) ;//true  & true  -->true

System.out.println("結論:并列關系,有false,則false") ;

//邏輯單或|
System.out.println((a>c)|(b>c)) ;//false | false -->false
System.out.println((a>c)|(b<c)) ;//false | true  -->true
System.out.println((a<c)|(b>c)) ;//true  | false -->true
System.out.println((a<c)|(b<c)) ;//true  | true  -->true

System.out.println("結論:或的關系,有true,則true (有一個滿足條件,則成立)") ;

//邏輯異或^
System.out.println((a>c)^(b>c)) ;//false ^ false -->false
System.out.println((a>c)^(b<c)) ;//false ^ true  -->true
System.out.println((a<c)^(b>c)) ;//true  ^ false -->true
System.out.println((a<c)^(b<c)) ;//true  ^ true  -->false

System.out.println("結論:相同則為false,不同則為true") ;

//邏輯非
System.out.println(!(a>c)) ;     //true
System.out.println(!!(a>c)) ;    //false
System.out.println(!!!(a>c)) ;   //true
System.out.println(!!!!(a>c)) ;  //false
System.out.println("結論:非true則false,非false,則true,偶數個非是它本身!") ;

//使用邏輯雙與來鏈接這些表達式
System.out.println((a>c) &&(b>c)) ;//false & false -->false
System.out.println((a>c) &&(b<c)) ;//false & true  -->false
System.out.println((a<c) &&(b>c)) ;//true  & false -->false
System.out.println((a<c) &&(b<c)) ;//true  & true  -->true
System.out.println("結論與邏輯單與&相同") ;

//邏輯單或|
System.out.println((a>c)||(b>c)) ;//false || false -->false
System.out.println((a>c)||(b<c)) ;//false || true  -->true
System.out.println((a<c)||(b>c)) ;//true  || false -->true
System.out.println((a<c)||(b<c)) ;//true  || true  -->true
System.out.println("結論與邏輯單或|相同") ;

//定義兩個變量
int x = 3 ;
int y = 4 ;
//boolean flag = ((++x == 3) & (--y ==4)) ; //true && true -->true
//boolean flag = ((x++ == 3) & (y-- ==4)) ; //true && true -->true
//boolean flag = ((x++ == 3) & (++y ==4)) ; //true && true -->true
//boolean flag = ((x++==3 ) && (y-- ==4) ); //true && true -->true
boolean flag = ((++x==3 ) && (y-- ==4) );   //false 右邊不執行

System.out.println("結論:當符號為&& ,左邊的表達式位false,右邊不執行(短路效果)") ;

int m = 4 ;
int n = 5 ;
//boolean flag2 = ((m++ == 4) | (--n == 5)) ; // true |  false
//boolean flag2 = ((++m == 4) || (--n == 5)) ;//false || false
boolean flag2 = ((m++ == 4) || (--n == 5)) ;//true
System.out.println("結論:當符號為|| ,左邊表達式為true,右邊不執行(短路效果)") ;

3)位運算符:(了解)
位與&,位或|,位異或^, ~數據(反碼)
<<(左移動),>> 右移,>>> 無符號右移  (了解)
舉例:

    位運算符:  位與&  位或|   位異或^   ~數據(反碼)

    位與& 有0則0
    3&4
    00000000 00000000 00000000 00000011
&   00000000 00000000 00000000 00000100
-------------------------------------------
    00000000 00000000 00000000 00000000
    結果:0
    結論:位與運算符的特點:有0,則0   

    位或| 有1則1
    3|4
    00000000 00000000 00000000 00000011
|   00000000 00000000 00000000 00000100
------------------------------------------
    00000000 00000000 00000000 00000111
    結果為:7
    位或|運算符的特點:有1,則1 

    位異或^ 相同則0 不同則1
    3^4
    00000000 00000000 00000000 00000011
^   00000000 00000000 00000000 00000100
------------------------------------------  
    00000000 00000000 00000000 00000111 

    結果為:7   
    位異或^運算符的特點:相同則為0,不同則為1

反碼5 求反碼(對當前數據的二進制數據全部按位取反,0變1,1變0)  
    ~5 
    00000000 00000000 00000000 0000101(原碼,反碼,補碼)
    11111111 11111111 11111111 1111010(全部按位取反)(這是補碼)
    11111111 11111111 11111111 1111001(反碼)
    10000000 00000000 00000000 0000110(原碼)
    結果為:-6

反碼-3  
    ~-3
    10000000 00000000 00000000 000000011(原碼)
    11111111 11111111 11111111 111111100(反碼)
    11111111 11111111 11111111 111111101(補碼)
    00000000 00000000 00000000 000000010(全部取反)
    結果為:2
    結論:求反碼(對當前數據的二進制數據全部按位取反,0變1,1變0)   

左移: <<
    3<<3
    00000000    00000000    00000000    00000011
    00000000    00000000    00000000    00011000(左移三位)
                                           16+8=24
    ------------------------------------------------
    -3<<3
    10000000    00000000    00000000    00000011
    11111111    11111111    11111111    11111100(反碼)
    11111111    11111111    11111111    11111101(補碼)    
    11111111    11111111    11111111    11101000(左移三位)(補碼)
    11111111    11111111    11111111    11100111(反碼)
    10000000    00000000    00000000    00011000(原碼)
    結果:                                 -24

右移: >>
    3>>3
    00000000    00000000    00000000    00000011
    00000000    00000000    00000000    00000000(右移三位)

無符號右移>>>
    20>>>2
    00000000    00000000    00000000    00010100
    00000000    00000000    00000000    00000101(無符號右移兩位,最高位都補0)
    結果:                                     5

4)三元(三目)運算符:    

固定格式:(表達式)?(表達式1):(表達式2)
執行流程:   判斷表達式的結果,
                結果為true->執行表達式1的結果,
                結果為false->執行表達式2的結果。
int a = 10;
int b = 20;
boolean res = (a>b)?true:false;//結果是:false;
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

禄劝| 乌兰察布市| 雷波县| 聊城市| 泰顺县| 伊金霍洛旗| 沿河| 兰考县| 阳东县| 银川市| 济宁市| 衡阳县| 达州市| 阿克陶县| 清河县| 桐乡市| 隆昌县| 新丰县| 老河口市| 陵川县| 三都| 麻阳| 贵德县| 宁蒗| 文登市| 行唐县| 铜川市| 茶陵县| 同江市| 寿阳县| 栾川县| 通州区| 汕尾市| 固原市| 肥西县| 崇左市| 迁西县| 都兰县| 财经| 兴化市| 阆中市|