C++ ?:條件運算子(三目運算子)用法詳解

2020-07-16 10:04:39
條件運算子強大而獨特,它提供了一種表達簡單 if-else 語句的簡寫方法。該運算子由問號(?)和冒號(:)組成,其格式如下:

表示式 ? 表示式 : 表示式 ;

以下是使用條件運算子的語句範例:

x < 0 ? y = 10 : z = 20;

這個語句被稱為條件表示式,它由 3 個子表示式組成,使用問號 ? 和冒號 : 分隔。這 3 個表示式分別是:x<0,y = 10 和 z = 20。

上面的條件表示式與以下 if-else 語句執行相同的操作:
if (x < 0)
    y = 10;
else
    z = 20;
問號前面的條件表示式的部分是要測試的條件。這就像 if 語句的括號中的表示式。如果條件是真的,則執行 ? 和 : 之間的語句;否則,執行 : 之後的部分。如果認為有幫助,可以在子表示式周圍放置圓括號,如下所示:

(x < 0) ? (y = 10) : (Z = 20);

圖 1 說明了 3 個子表示式所扮演的角色。

條件運算符中 3 個子表達式的作用
圖  1 條件運算子中 3 個子表示式的作用