c語言中?:是什么運(yùn)算符? 關(guān)于C語言條件運(yùn)算符的結(jié)合順序?
關(guān)于C語言條件運(yùn)算符的結(jié)合順序?條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆保?條件運(yùn)算符優(yōu)先于賦值運(yùn)算符;條件運(yùn)算符的執(zhí)行順序:先求表達(dá)式1。若為真則求表達(dá)式2,此時(shí)表達(dá)式2的值就是整個(gè)條件表達(dá)式的值。若表達(dá)
關(guān)于C語言條件運(yùn)算符的結(jié)合順序?
條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆保?條件運(yùn)算符優(yōu)先于賦值運(yùn)算符;條件運(yùn)算符的執(zhí)行順序:先求表達(dá)式1。
若為真則求表達(dá)式2,此時(shí)表達(dá)式2的值就是整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為真,求表達(dá)式3,此時(shí)表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。
寫出條件運(yùn)算符的語法,并寫出其運(yùn)算步驟?
條件運(yùn)算符是 ? : 形如:表達(dá)式1?表達(dá)式2:表達(dá)式3 先求解表達(dá)式1, 若其值為真,則將表達(dá)式2的值作為整個(gè)表達(dá)式的取值, 否則將表達(dá)式3的值作為整個(gè)表達(dá)式的取值。 例如: max=(a>b)?a:b 此處表達(dá)式1為:a>b 表達(dá)式2為:a 表達(dá)式3為:b 先求解表達(dá)式1,即a>b:如果a大于b,那么返回表達(dá)式2,即a的值,即max=a; 如果a不大于b,那么返回表達(dá)式3,即b的值,即max=b;
條件運(yùn)算符?和:是什么意思?
條件運(yùn)算符(? : )是一個(gè)三目運(yùn)算符,即有三個(gè)操作數(shù)。
使用條件運(yùn)算符(?:)可以實(shí)現(xiàn) If else 的功能,其一般形式為:
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
例如條件語句:
if(a>b) max=a
else max=b
可用條件表達(dá)式寫為
max=(a>b) ? a : b
執(zhí)行該語句的語義是:如a>b為真,則把a(bǔ)賦予max,否則把b 賦予max。
if條件語句例子如下:
直接編譯,程序輸出結(jié)果中任意輸入年齡,程序執(zhí)行結(jié)果如下圖所示:
知識(shí)擴(kuò)展:
條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符
條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開單獨(dú)使用。
條件運(yùn)算符的結(jié)合方向是自右至左。
用條件運(yùn)算符和條件表達(dá)式改掉if和else語句,有沒可能?
當(dāng)然可以。但是有什么意義呢,當(dāng)條件運(yùn)算符多層嵌套使用時(shí),程序閱讀很困難,不清晰。多分支結(jié)構(gòu)還是用 switch case 結(jié)構(gòu)最好,不提倡用 if else .現(xiàn)在編程:不提倡用一些技巧,而是使用最通俗,最樸素的語句。利于程序的維護(hù)。當(dāng)然,你提的這個(gè)問題,說明你思考了,雖然我認(rèn)為現(xiàn)實(shí)意義不大,但還是值得表揚(yáng)。