一、引入
又叫做:三元表达式或者问号冒号表达式。作用:可以进行判断,根据判断的结果得到不同的内容。
格式:关系表达式 ? 表达式1 :表达式2 ;
其中的 关系表达式 就是一个判断
计算规则:
- 计算关系表达式的值。
- 如果关系表达式的值为真,那么执行表达式1。
- 如果关系表达式的值为假,那么执行表达式2。
注意点:三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来,如果单独在代码中写一个三元表达式,是会报错的。
二、代码示例
需求:使用三元运算符,获取两个数的较大值
package com.itheima.ternaryoperator;
public class TernaryoperatorDemo1 {
public static void main(String[] args) {
//分析:
//1.定义两个变量记录两个整数
int number1 = 10;
int number2 = 20;
//2.使用三元运算符获取两个整数的较大值
//格式: 关系表达式 ? 表达式1 : 表达式2;
//整个三元运算符的结果必须要被使用
int max = number1 > number2 ? number1 : number2; // 赋值给一个变量
System.out.println(max);
System.out.println(number1 > number2 ? number1 : number2); // 直接打印出来,此时在式子的最后就不需要加分号了
}
}
三、练习1-两只老虎
需求:
动物园里有两只老虎,两只老虎的体重分别为通过键盘录入获得,
请用程序实现判断两只老虎的体重是否相同。
代码示例:
package com.itheima.test;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
//分析:
//1.键盘录入两只老虎的体重
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一只老虎的体重");
int weight1 = sc.nextInt();
System.out.println("请输入第二只老虎的体重");
int weight2 = sc.nextInt();
//2.比较
//System.out.println(weight1 == weight2); 这种写法打印出来的要么是true,要么是false。但是现在我们想打印出相同 / 不同
String result = weight1 == weight2 ? "相同" : "不同";
System.out.println(result);
}
}
四、练习2-求三个数的最大值
需求:
一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm。
请用程序实现获取这三个和尚的最高身高。
代码示例:
package com.itheima.test;
public class Test5 {
public static void main(String[] args) {
//1.定义三个变量记录三个和尚的身高
int height1 = 150;
int height2 = 210;
int height3 = 165;
//2.拿着第一个和尚和第二个和尚进行比较
//再拿着结果跟第三个和尚进行比较即可
int temp = height1 > height2 ? height1 : height2;
int max = temp > height3 ? temp : height3;
//快捷键:ctrl + alt + L 自动的格式化代码
System.out.println(max);
}
}
五、运算符的优先级
在Java中涉及了很多的运算符,每一种运算符都有各自的优先级。但是这些优先级不需要记忆。
咱们只要知道其中一点:小括号优先于所有。