三元運算符 :
格式 : (條件表達式)? 表達式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); } }