條件運算符和位運算符
一、條件運算符
又稱三元運算符/三目運算符
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)?"你好":"你不好");
}
}
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmL3MmYhFmZkRGO2QGNjdzY4ITOzUTO0gDNiFGN0UGN1UTN4IWM5Y2LchDMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.gif)
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?"聽男孩的":"聽女孩的");
}
}
PS:三目運算符可以代替後續我們要學習的if-else
二、位運算符(了解)
位運算符:&,|,^,~ , >>,<<,>>>
如何區分邏輯運算符和位運算符:
邏輯運算符:左右連接配接的是布爾類型的操作數
位運算符:左右連接配接的是具體的數值
1、<< 左移
3<<2 = 12
面試題: 4乘以8最快的方式: 4<<3
2、>> 有符号右移
6>>2 = 1
-6>>2 = -2
3、>>> 無符号右移
6>>>2 = 1
4、& 與
6&3 = 2
5、| 或
6|3=7
6、^ 異或
6^3 = 5
7、~ 反
~6 = -7
PS:
byte類型的表數範圍的 -128是怎麼算出來的
127: 01111111
-128: 10000000
一看就是個負數
減1: 01111111