条件表达式?表达式1:表达式2;
如果条件表达式为true,运算后的结果是表达式1;
如果条件表达式为false,运算符的结果是表达式2;
public class text { public static void main(String [] args ) { int a =10; int b =13; int result = a > b ? a++ : b--; // b--先取值,后自减 //b--,返回b的值给result,然后b-1 System.out.println(result); System.out.println(a); //10 System.out.println(b); //12 } }
三元运算符在小转大时,可以自动转换数据类型
public class text { public static void main(String [] args ) { int a = 3; int b = 5; int c = a>b ? 1.4 : 1.5//不可以,属于数据double型转int型 int c = a>b ? (int)1.4 : (int)1.5//可以 double c = a>b ? 1.4 : 1.5 //可以 } }
//求用三元运算符比较三数大小,并输出 public class text { public static void main(String [] args ) { int a = 12; int b = 16; int c= 21; int max = a>b ? a: b; max = max > c ? max : c; System.out.println(max) ; int max1 = (a > b ? a : b) > c ? (a>b ? a: b) : c System.out.println(max1) ; int max2 = a > b ? (a >c ? a : c ) : (b > c ? b : c ); System.out.println(max2) ; } }