1、三元运算符介绍:
格式:
条件表达式 ? 值1: 值2
执行流程:首先计算关系表达式的值,如果值为true,就返回值1,如果值为false,就返回值2。
例1:
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 目标:三元运算符
double score = 98.5;
String rs = score >= 60 ? "考试及格" : "考试不及格";
System.out.println(rs);
}
}
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 目标:三元运算符
double score = 58.5;
String rs = score >= 60 ? "考试及格" : "考试不及格";
System.out.println(rs);
}
}
例2:找出两个数中的较大值:
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 找出两个数中的较大值
int a = 10;
int b = 12;
int max_value = a > b ? a : b;
System.out.println(value_value);
}
}
例3:
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 找出三个数中的较大值,增加了一个中间变量temp
int i = 10;
int j = 120;
int k = 34;
int temp = i > j ? i : j;
int max_value = temp > k ? temp : k;
System.out.println(max_value);
}
}
一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 三个和尚的身高
int height1 = 150;
int height2 = 200;
int height3 = 165;
int tempHeight = height1 > height2 ? height1 : height2;
int maxHeight = tempHeight > height3 ? tempHeight : height3;
System.out.println("maxHeight:" + maxHeight);
}
}
在表达式中,哪个运算符先执行哪个运算符后运行是要看优先级的,例如:乘除的优先级大于加减。
另外:
双与的优先级高于双或的。
老师举了一个不错的例子:在之前的学习中没有注意这个事情:
package cn.ensource.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 一个例子
System.out.println(10 > 3 || 10 > 3 && 10 < 3); // true
System.out.println((10 > 3 || 10 > 3) && 10 < 3); // false
}
}
短路或为真:则为真