三目运算符的格式:比较表达式?表达式1:表达式2;
【注意:比较表达式是一个boolean类型】
执行流程:根据比较表达式的计算返回一个true或false
如果是true,就把表达式1作为结果。
如果是false,就把表达式2作为结果。
三目运算符使用的小例子:
例1:获取两个整数中的最大值
int x=100 , y=200, z=((x>y)?x:y);
System.out.println("z:"+z); //z:200 z的值为表达式2的值200
例2:获取三个整数中的最大值(分步进行)
int a=10,b=30,c=20;
int temp=((a>b)?a:b); // 先比较a,b间的大小,取其最大值赋给temp
int max=temp>c?temp:c; // 比较temp与c之间的大小,取其最大值赋给max
System.out.println("max:"+max); // max:30
例3:获取三个整数中的最大值(一步搞定)
int a=10,b=30,c=20;
int max1=(a>b)?((a>c)?a:c):((b>c)?b:c);
//返回的表达式1或表达式2并不只能是数值
//不加括号并不会报错,但是不推荐
System.out.println("max1:"+max1); //max1:30
例4:比较两个整数是否相同
int m=10,n=20;
//方式1:
boolean flag1=(m==n)?true:false;
//该条语句画蛇添足,已经定义了布尔类型变量,后面不需要再加true和false
System.out.println(flag1); // false
//方式2:
boolean flag2=(m==n); //简明无错
System.out.println(flag2); // false