首頁  >  文章  >  後端開發  >  c語言三目運算子怎麼用?

c語言三目運算子怎麼用?

coldplay.xixi
coldplay.xixi原創
2020-06-28 09:35:0615928瀏覽

c語言三目運算子的用法:首先對於條件式【b ? x : y】,計算條件b;然後判斷,如果b的值為true,計算x的值,運算結果為x的值,否則,計算y的值,運算結果為y的值即可。

c語言三目運算子怎麼用?

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,c ,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算子的結合性是右結合的。

以下是關於條件運算子的幾點說明:

(1)、 通常情況下,表達式1是關係表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常數,變數或表達式。例如:

(x==y)?&#39;Y&#39;:&#39;N&#39;(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>=&#39;A&#39;&&ch<=&#39;Z&#39;)?(ch+32):ch

以上皆為合法的條件表達式。

(2)、 條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件式的值;

若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件式的值。例如:

(a>=0)?a:-a 執行結果是a的絕對值。

(3) 、在程式中,透過把條件表達式的值直接賦予某個變數。例如:

min=(a<b>執行結果就是將條件式的值賦予變數min,即將a和b二者中較小的數賦給min。 </b>

(4)、 條件運算式的優先等級僅高於賦值運算子,而低於前面遇到的所有運算子。

因此,min=(a<b>括號可以不要,可直接寫成,<code>min=a<b>如果有<code>x<y>等效於<code>x<y>而不等效於<code>(x<y></y>

(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn