-
條件運算符
鎖定
- 中文名
- 條件運算符
- 外文名
- min = (a < b) ? a : b
- 性 質
- 運算符
- 屬 性
- 條件
- 程序示例
- ChooseDemo05.java
- 適用範圍
- 程序開發
條件運算符C語言
條件運算符運算符
表達式為:表達式1?表達式2:表達式3
先求解表達式1,
若其值為真(非0)則將表達式2的值作為整個表達式的取值,
否則(表達式1的值為0)將表達式3的值作為整個表達式的取值。
例如:
1、max=(a>b)?a:b
就是將a和b二者中較大的一個賦給max。
2、min=(a<b)?a:b
就是將a和b二者中較小的一個賦給min。
條件運算符優先級
例如:
⑴ m<n ? x : a+3
等價於:(m<n) ?(x) :(a+3)
⑵ a++>=10 && b-->20 ? a : b
等價於:(a++>=10 && b-->20) ? a : b
⑶ x=3+a>5 ? 100 : 200
等價於:x= (( 3+a>5 ) ? 100 : 200 )
條件運算符結合性
條件運算符具有右結合性
當一個表達式中出現多個條件運算符時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算符的運算對象。如果在問號和冒號之間還有一個問號或者冒號,應該滿足就近配對,使結構不發生紊亂。
例如:
w < x ? x + w : x < y ? x : y
與 w < x ? x + w : ( x < y ? x : y) 等價
與 (w < x ? x + w : x < y) ? x : y 不等價
a > b ? c > d ? e : f : g
與a > b ? (c > d ? e : f) : g等價
條件運算符JAVA語言
條件運算符形式
關係表達式 ? 表達式1 : 表達式2
條件運算符求值規則
條件運算符説明
2、JAVA中條件運算表達式中的關係表達式值的類型必須為布爾類型,只能是true或false。
3、結合性也是右結合性。
4、與C語言不同的是,JAVA中條件表達式的值必須參與運算。
public class Demo{ public static void main(String[] args){ int a = 10,b = 20,y; a > b ? (y = a) : (y = b);//1,這樣寫是錯誤的 y = a > b ? a : b;//2,這樣寫是正確的 y = a < b ? b : b < c ? a : c;//3,這樣寫是正確的 } }
以上程序中,1處錯誤是由於條件表達式的值沒有參與運算,不能構成語句。3處(b < c ? a : c)先結合,再將這個值參與到另一個條件運算中去,是合法的,這也説明了條件運算符的右結合性。
條件運算符運算符妙用
——用條件表達式判斷輸出單詞的單複數。
程序示例:ChooseDemo05.java
程序中會自動根據apples的個數來輸出單詞的單數或複數。
public class ChooseDemo05{ public static void main(String[] args){ int apples = 1;//蘋果的個數 System.out.println("I have" + apples + "apple" + (apples == 1 ? "." : "s.")); } }
當然,還有其他的應用:
1、 在某些地方使用“他”還是“她”。
2、日期輸出時決定使用後綴“st”、“nd”等。