短路运算拓展及三元运算
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); //及格
/*1.三元运算符结构:(条件表达式)?表达式1:表达式2
2.结果为boolean类型
3.获取两个整数的最大值:int m1 = 5; int n1 = 10;
int max =(n1>m1)? n1 : m1;
System.out.println(max);
三元运算符可以嵌套使用:
String maxstr =(m2>n2)"m大":((m2==n2)"m和n相等" :“n大”);
4.凡是可以使用三元运算符的地方,都可以使用if -else;反之,则不成立
5.如果程序既可以使用算远运算符又可以使用if-else结构,我们优先选择 三元运算符,因为其更简洁,效率更高!
*/
}
}

浙公网安备 33010602011771号