-
三目运算符
/*
条件运算符
条件表达式 ? 值1 : 值2 ;
条件表达式 : 值为boolean类型的表达式
执行流程:
1.计算条件表达式,得到boolean结果
2.为true,结果为值1
为false,结果为值2
*/
String s = false ? "值1" : "值2";
System.out.println(s);
int a = 5;
String s2 = a>0? "a>0" : "a<=0";
boolean flag = a>0? true : false;
System.out.println(flag);
System.out.println(a>0);
int b = 7;
//求2个数最大的值
int max = a>b?a:b;
System.out.println(max);
//求2个数值最大的变量
String name = a>b? "a" : "b";
//判断a是否为偶数
System.out.println(a%2==0?"偶数":"奇数");
//求3个变量中最大的值
max= 0;
int c = 14;
//1)
max = a > b ? a : b;
max = max>c ? max : c;
System.out.println(max);
max= 0;
//2)
max = a>b && a>c ? a : (b>c ? b : c);
System.out.println(max);
-
位运算符
位运算符(了解)
把操作数转为二进制,然后根据运算符的规则运算,最终得到的结果转为十进制
& : 同一位的两个数,两个都为1才是1,一个为0就是0
| : 同一位的两个数,一个为1就是1,两个都为0才是0
^ : 同一位的两个数,相同为0不同为1
注意 : 以上三个左右两边为boolean类型数据就作为逻辑运算符存在
位移运算符
>> 右移 ==> 8>>2
把第一个操作数转为二进制,向右移动第二个操作数个位数,移出的位数直接忽略不计,剩余的转为十进制
<< 左移
把第一个操作数转为二进制,向左移动第二个操作数个位数,空位补0,结果转为十进制
总结规律 :
右移 :/2的次方
8>>3 ==> 8/2^3
左移 :*2的次方
8<<3 ==> 8*2^3
注意 : 建议使用位移运算符代替乘除,效率高System.out.println(3&2); //2 System.out.println(3|2); //3 System.out.println(3^2); //1 System.out.println(8>>2); //2 System.out.println(8<<1); //16