一、三目运算符/三元运算符
语法结构:
变量 = (表达式)?值1:值2;
理解:
表达式的结果必须是boolean类型
true - 将值1赋值给变量
false- 将值2赋值给变量int num = (false)?10:20; System.out.println(num);
二、 三目运算符/三元运算符运用
需求1:在控制台输入两个int类型的数字,判断大小,输出最大值
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
int max = (a>b)?a:b;
System.out.println("最大值为:" + max);
需求3:在控制台输入三个int类型的数字,判断大小,输出最大值
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
System.out.println("请输入第三个数字:");
int c = scan.nextInt();
int max = (a>b)?a:b;
max = (max>c)?max:c;
System.out.println("最大值为:" + max);
需求4:在控制台输入三个int类型的数字,判断大小,由小到大输出
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scan.nextInt();
System.out.println("请输入第二个数字:");
int b = scan.nextInt();
System.out.println("请输入第三个数字:");
int c = scan.nextInt();
//获取最大值
int max = (a>b)?a:b;
max = (max>c)?max:c;
//获取最小值
int min = (a<b)?a:b;
min = (min<c)?min:c;
//获取中间值
int mid = a+b+c-max-min;
System.out.println(min + "<" + mid + "<" + max);
三、三目运算符/三元运算符的深入
扩展面试题1:
int a = 5;
System.out.println((a<5)?10.9:9);//结果为:9.0
返回值规则1: 值1和值2都是常量的情况下,按照取值范围大的类型返回数据
扩展面试题2:
char x = 'x';//Unicode - 120
int i = 10;
System.out.println((false)?i:x);//120
返回值规则2: 值1和值2都是变量的情况下,按照取值范围大的类型返回数据据
扩展面试题3:
char x = 'x';//Unicode - 120
System.out.println((false)?100:x);//x
System.out.println((false)?100000:x);//120
返回值规则3: 值1和值2一个是常量一个是变量的情况下,判断常量是否在变量所属类型的取值范围里:
如果在 -- 按照变量类型返回数据
如果不在- 按照常量类型返回数据