三元运算符

三元运算符 :

  格式 : (条件表达式)? 表达式1 :表达式2;

说明:
  1.条件表达式的结果只能是boolean类型
  2.如果条件表达式的值为true执行表达式1,否则执行表达式2
  3.表达式1和表达式2的类型应该保持一致
  如果表达式1和表达式2可以自动类型提升为一种类型,那么也可以。
  例:double d = (10 > 5)? 10.5 : 20;

/*

    三元运算符 :

    格式 : (条件表达式)? 表达式1 :表达式2;

    说明:
        1.条件表达式的结果只能是boolean类型
        2.如果条件表达式的值为true执行表达式1,否则执行表达式2
        3.表达式1和表达式2的类型应该保持一致
                如果表达式1和表达式2可以自动类型提升为一种类型,那么也可以。
                例:double d = (10 > 5)? 10.5 : 20;


*/
public class TernaryTest{

    public static void main(String[] args){
    
        int m = 5,n = 10;

        int maxNumber = (m > n)? m : n;

        System.out.println(maxNumber);

        System.out.println("--------------------------------");
        
        m = n = 10;
        // m > n 不成立的条件是  m <= n
        String str = (m > n)? "m大" : "n大";
        System.out.println(str);

        System.out.println("--------------------------------");
        
        //注意 :表达式1和表达式2的类型应该保持一致
        double d = (10 > 5)? 10.5 : 20;  //因为20可以自动类型提升为doulbe
        System.out.println(d);


        System.out.println("--------------------------------");
        //需求 :求三个数中的最大值
        int a = 5,b = 10,c = 15;
        /*
        int max = (a > b)? a : b;
        int max2 = (max > c)? max : c;
        */

        
        int max2 = (((a > b)? a : b) > c)? ((a > b)? a : b) : c;

        System.out.println(max2);
    }
}
原文地址:https://www.cnblogs.com/zmy-520131499/p/11047447.html