三元操作符“?:”,有時也稱為條件操作符。
對條件表達式b?x:y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y,運算結果為y的值。一個條件表達式從不會又計算x,也計算y。條件操作符是向右關聯的,也就是說,從左向右分組計算。例如:表達式a?b:c?d:e將按a?b:(C?d:e)形式執行。
?:的第二和第三個操作數控制了條件表達式的類型。設x和y分別是第二個和第三個操作數的類型,那麼:
●如果x和y為同一類型,則該類型即是條件表達式的類型。
●否則,如果從x到y存在一個隱式轉換,但不存在y到x的轉換,那麼y是條件表達式的類型。
●否則,如果從y到x存在一個隱式轉換,但不存在x到y的轉換,那麼x是條件表達式的類型。
●否則,沒有定義任何表達式類型,發生編譯時錯誤。