C 三元表示式詳情

2022-09-25 05:00:20 字數 928 閱讀 4888

if-else語句非常常用,但在進行一些簡單邏輯判斷的時候,會顯得有些不太簡潔。特別是在初始化的時候,比如我們有乙個變數,某種情況下賦值成a,另外的情況下賦值成b。

使用if-else語句寫出來就是:

int cur;

if (condition) else

這當然是沒問題的,只是在大量使用的時候會顯得有些繁瑣。因此c++當中推出了三元表示式對此進行簡化,三元表示式也被稱為條件運算子(?:)。

運算子的通用格式如下:

condition ? expression1 : expression2程式設計客棧;

問號之前的condition表示乙個邏輯運算,如果結果為true,返回expression1的值,否則返回expre的值。

使用三元表示式之後,剛才上述的**可以改寫成:

int cur = condition ? a : b;

這樣我們就把6行代程式設計客棧碼壓縮成了一行,簡化了**,但也因此了增加了**閱讀的難度。因此只推薦在簡單邏輯判斷下使用三元表示式,也不推薦巢狀使用,會使得**非常難以閱讀。

最後分享乙個我個人特別喜歡的使用三元表示式的場景,就是結構體排序的cmp函式。

比如我們有這樣乙個場景,需要使用乙個結構體儲存兩個值x和y,代表乙個座標。我們需要對座標進行排序,排序的規則是x軸小的在前,如果x軸相等,則y小的在前。

struct p ;

www.cppcns.com

p arr[1000];

大家都知道,要對這樣的結構體排序,一種做法是我們可以額外實現乙個cmp函式作為sort排序函式的傳參。如果不使用三元表示式,

那麼cmp函式是這樣的:

bool cmp(const p &a, const p &b) else

}使用三元表示式的話,整個邏輯只有一行:

bool cmp(const p& a, const p& b)

三元表示式

c 中有乙個三元運算子 語法為 條件表示式?表示式1 表示式2 該操作首先求出條件表示式的值 bool型別 為true時呼叫表示式1,為flase時呼叫表示式2。其邏輯為 如果為真執行第乙個,否則執行第二個。例項 string result name 老趙 帥的掉渣了 山炮掉渣了 dic.add d...

三元表示式

採用三元操作符對?對表示式進行運算,這種操作符比較特別,因為它有三個操作物件,但它確實屬於操作符的一種,它最終也會生成乙個值。其表示式採取下述形式 boolean exp value0 value1 原型比較大小 string result int i 5,j 10 if i j result su...

三元表示式

有段時間沒有跟進東西了,說明我沒有進步,三元表示式真的挺好用的,有的地方沒法用if else進行判斷,用這個很方便,之前上學的時候學過這個,由於這個知識點很小,盡然被我忘了,上次寫東西我想了好久,在那裡邊沒法進行判斷,後來人家給我說用三元表示式啊,我愣住了,三元表示式,不知道是啥,人家也不給我說,直...