天天看點

大資料必學Java基礎(十八):條件運算符和位運算符

條件運算符和位運算符

一、條件運算符

又稱三元運算符/三目運算符

1、格式

a?b:c

其中a是一個布爾類型的表達式,傳回結果要麼是true要麼false,通過a的結果決定最終表達式的結果:

如果a的結果是true,那麼表達式最終結果為b

如果a的結果是false,那麼表達式最終結果為c

2、代碼

public class TestOpe11{
        public static void main(String[] args){
                int num = (5>7)?6:9 ;
                System.out.println(num);
                
                String str = (4==4)?"你好":"你不好" ;
                System.out.println(str);
                
                System.out.println((4==4)?"你好":"你不好");
        }
}      
大資料必學Java基礎(十八):條件運算符和位運算符

3、練習

import java.util.*;//*代表所有
public class TestOpe12{
        public static void main(String[] args){
                //實作功能:男孩女孩選擇晚飯吃什麼,如果意見一緻,聽男生的,如果意見不一緻,聽女生的
                
                //1.要讓男孩女孩選擇晚飯吃什麼:
                Scanner sc = new Scanner(System.in);
                System.out.println("請選擇今晚吃什麼:1.火鍋 2.燒烤 3.麻辣燙 4.西餐");
                System.out.println("請男孩選擇:");
                int boyChoice = sc.nextInt();
                System.out.println("請女孩選擇:");
                int girlChoice = sc.nextInt();
                //2.判斷:
                System.out.println(boyChoice==girlChoice?"聽男孩的":"聽女孩的");
        }
}      
大資料必學Java基礎(十八):條件運算符和位運算符

PS:三目運算符可以代替後續我們要學習的if-else

二、位運算符(了解)

位運算符:&,|,^,~ , >>,<<,>>>

如何區分邏輯運算符和位運算符:

邏輯運算符:左右連接配接的是布爾類型的操作數

位運算符:左右連接配接的是具體的數值

1、<<   左移 

  3<<2 = 12

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

 面試題: 4乘以8最快的方式:  4<<3 

2、>> 有符号右移

6>>2 = 1 

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

-6>>2 = -2  

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

3、>>> 無符号右移 

6>>>2  = 1 

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

4、& 與

6&3 = 2

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

5、| 或

6|3=7

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

6、^ 異或

6^3 = 5

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

7、~ 反 

~6  = -7

大資料必學Java基礎(十八):條件運算符和位運算符
大資料必學Java基礎(十八):條件運算符和位運算符

PS:

byte類型的表數範圍的 -128是怎麼算出來的 

127: 01111111

-128:  10000000

一看就是個負數

減1:    01111111

繼續閱讀