三元运算符
格式:逻辑表达式 ? 表达式1:表达式2
表达式可以是字符串,表达式,也可以是具体的值。
得出的是数值型叫算术表达式
得出的是boolean叫逻辑表达式
逻辑表达式的值是true,则返回表达式1值,
逻辑表达式的值是false,则返回表达式2值,
eg:
int a = 2+3;
int b = 4;
System.out.println(a>2?a+2:a-2);
【7】
System.out.println(a<3?4:2)
【2】
eg:求两个数的最大值
int max = a<b?b:a;
System.out.println(max);
结果要不直接打印出来,要不用数值类型和标识符接收一下
求一个数是偶数还是奇数
String c = a%2==0?"偶数":"奇数";
System.out.println(c);
【奇数】
逻辑运算符
所有逻辑运算符的结果都为布尔类型
与(&) 或(|) 非( !) 异或(^) 短路与(&&) 短路或(||)
1.与
System.out.println(true&true);//t
System.out.println(true&false);//f
System.out.println(false&false);//f
System.out.println("***************");
【true
false
false
************】
//2.或
System.out.println(true|true);//t
System.out.println(true|false);//t
System.out.println(false|false);//f
System.out.println("*************");
【true
true
false
************】
//3.非
System.out.println(!true);//f
System.out.println("****************");
【false
************】
//4.异或
System.out.println(true^true);//f
System.out.println(true^false);//t
System.out.println("*************");
【false
true
************】
异或中,相同为0(false),不同为1(true)
//5.短路与
int b = 4;
System.out.println(b>4 && b==1/0);、 //int a =5;
System.out.println("***************");
【false
************】 //System.out.println(a>7&1==1/0); 【error】
//6.短路或
System.out.println(1==1||1==1/0);
【true】
短路与中,前面是true时,才会去执行后面的代码。
路或中,前面是false时,才会去执行后面的代码。