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) {// 找出三个数中的较大值,增加了一个中间变量tempint 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); // trueSystem.out.println((10 > 3 || 10 > 3) && 10 < 3); // false}
}
短路或为真:则为真