c語言三目運算子的用法:首先對於條件式【b ? x : y】,計算條件b;然後判斷,如果b的值為true,計算x的值,運算結果為x的值,否則,計算y的值,運算結果為y的值即可。
C語言三目運算子用法:
#對於條件式b ? x : y
,先計算條件b,然後進行判斷。若b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。
一個條件式絕對不會既計算x,又計算y。條件運算子是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e
將按a ? b : (c ? d : e)
執行。
? : ; "?"運算子的意思是:先求表達式1的值,如果為真,則執行表達式2,並傳回表達式2的結果;如果表達式1的值為假,則執行表達式3,並傳回表達式3的結果。
可以理解為條件 ? 結果1 : 結果2 裡面的?號碼是格式要求。也可以理解為是不是條件成立,條件成立為結果1否則為結果2。
擴充資料:
三目運算符,又稱條件運算符,指的是電腦語言(c,c ,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算子的結合性是右結合的。
以下是關於條件運算子的幾點說明:
(1)、 通常情況下,表達式1是關係表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常數,變數或表達式。例如:
(x==y)?'Y':'N'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='A'&&ch<='Z')?(ch+32):ch
以上皆為合法的條件表達式。
(2)、 條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件式的值;
若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件式的值。例如:
(a>=0)?a:-a
執行結果是a的絕對值。
(3) 、在程式中,透過把條件表達式的值直接賦予某個變數。例如:
min=(a<b)?a:b
執行結果就是將條件式的值賦予變數min,即將a和b二者中較小的數賦給min。
(4)、 條件運算式的優先等級僅高於賦值運算子,而低於前面遇到的所有運算子。
因此,min=(a<b)?a:b
括號可以不要,可直接寫成,min=a<b?a:b
如果有x<y?x 1:y-1
等效於x<y(x 1):(y-1)
而不等效於(x<y?x 1:y)-1
(5) 、條件運算子的結合方向為"自右至左".
(6) 、條件式允許嵌套,即允許條件表達式中的表達式2和表達式3又是一個條件表達式。例如:
x>0?1:x<0?-1:0
上述條件表達式中,表達式3部分又是一個條件表達式.根據條件表達式的結合性,上述條件表達式等價於:
x>0?1:(x<0?-1:0)
其作用是判斷x的符號情況.當x為正數時,該條件表達式的值為1;當x為負數時,該條件表達式的值為-1;當x為0時,該條件表達式的值為0。
(7) 、條件式不能取代一般的if語句,僅當if語句中內嵌的語句為賦值語句(且兩個分支都給同一變數賦值)時才能代替if語句。例如:
if(a%2==0)printf("even/n");elseprintf("odd/n");
該語句的作用是:若 a 為偶數,輸出 even;若 a 為奇數,輸出odd。
(8) 、表達式1,表達式2,表達式3的型別可以不同.此時條件式的值的型別為它們中較高的型別。
推薦教學:《C影片教學》
以上是c語言三目運算子怎麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!