大数据必学Java基础(十八):条件运算符和位运算符
精选
原创
©著作权归作者所有:来自51CTO博客作者Lansonli的原创作品,请联系作者获取转载授权,否则将追究法律责任
条件运算符和位运算符
一、条件运算符
又称三元运算符/三目运算符
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)?"你好":"你不好");
}
}

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
取反: 10000000 ---》2^7 = 128
加负号: -128