三目运算符
也可以叫三元运算符
具体格式:
比较表达式?表达式1:表达式2
注意:比较表达式的结果是一个boolean类型。
执行流程:
根据比较表达式的计算结果返回一个 true或 false。
若结果为true,则这个表达式的结果为表达式1;
若结果为false,则这个表达式的结果为表达式2。
三目运算符经常用于某个类型的 if-then-else语句,例:
if (a>b)
max = a;
else
max = b;
即可用三目运算符来代替处理,例:
max = (a>b)?a:b;
案例:
比较数值的大小
int x = 20;
int y = 30;
//先进行比较,结果为false,则输出结果 max = y
int max = (x>y)?x:y;
//两个数值进行比较,结果为true,则输出结果 min = x
int min = (x<y)?x:y;
System.out.println("最大值 max="+max);
System.out.println("最小值 min="+min);
若要比较两值是否相等,
//若写成这个等式,系统会报错。
//原因:x = y 也就是把y的值赋给了x,这里便成int类型。比较表达式的结果是一个boolean类型。所以会报错。
int equal = (x=y)?x:y;
//虽然没有报错,但输出的结果为 y,并不是我们想要的结果
int equal = (x==y)?x:y;
具体的做法:
//若相等,则输出true。若不相等,则输出false
boolean flag = (x==y)?true:false;
//另一个写法,布尔类型要特殊一点点
boolean flag2 = x==y ;
//打印输出
System.out.println(flag);
System.out.println(flag2);
运行结果: