package operator;
public class TEST04 {
public static void main(String[] args) {
//短路运算:前面如果是假的话,后面根本不会被执行
int c = 5;
boolean d =(c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5 因为c<4=false, 所以(c++<4)没有被执行,d=5
boolean e =(c>4)&&(c++<4); // false
boolean b =(c>4)&&(++c>4); // ture
System.out.println(e);
System.out.println(b);
//位运算:& | ^ ~ <<(左移) >>(右移)
/* A = 0011 1100
B = 0000 1101
A&B 0000 1100 两个都是1才为1,其他为0
A|B 0011 1101 俩个都是1或者其中一个是1则为一,其他为0
A^B 0011 0001 相同为0,不相同为1
~B 1111 0010
2*8=16 2*2*2*2
二进制
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
<<表示 *2 ; >>表示 /2
*/
System.out.println(2<<3); //表示把2向左边移动三位
//扩展条件运算符
int x =10;
int y =20;
System.out.println(x+=y); // 结果为30
//x+=y (x=x+y); x-=y (x=x-y)
// 字符串连接符 +
int x1 =10;
int y1 =20;
System.out.println(""+x1+y1); // 1020 这里的+号表示字符串连接
System.out.println(x1+y1+""); // 30
//三元运算符: ?:
// n? m : l
//如果n=true, 则结果为m, 否则为l
int score =90;
String type =score <60? "不及格":"及格";
System.out.println(type); //及格
}