三元運算符c語言
㈠ c語言 條件運算符
條件運算符(? : )是一個三目運算符,即有三個操作數。
使用條件運算符(?:)可以實現 If else 的功能,其一般形式為:
表達式1 ? 表達式2 : 表達式3
例如條件語句:
if(a>b) max=a;
else max=b;
可用條件表達式寫為
max=(a>b) ? a : b;
執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。
if條件語句例子如下:
知識擴展:
條件運算符的運算優先順序低於關系運算符和算術運算符,但高於賦值符
條件運算符?和:是一對運算符,不能分開單獨使用。
條件運算符的結合方向是自右至左。
㈡ 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> : <表達式3>; "?"運算符的含義是:先求表達式1的值,如果為真,則執行表達式2,並返回表達式2的結果;如果表達式1的值為假,則執行表達式3,並返回表達式3的結果。
可以理解為條件 ? 結果1 : 結果2裡面的?號是格式要求。也可以理解為是不是條件成立,條件成立為結果1否則為結果2。
(2)三元運算符c語言擴展閱讀:
三目運算符,又稱條件運算符,指的是計算機語言(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");
else
printf("odd/n");
該語句的作用是:若 a 為偶數,輸出 even;若 a 為奇數,輸出odd。
(8)表達式1,表達式2,表達式3的類型可以不同.此時條件表達式的值的類型為它們中較高的類型。
㈢ c語言三元運算符問題
多個三元運算,那麼從做往右看:
相當於:
d = a>b?(a>c?a:c):b;
1. a > b正確,所以等號右邊表達式的返回值是(a > c?a:c);
2. a >c 錯誤,所以結果是冒號:右邊的,也就是c
3. 所以 d = c;
最後輸出的結果就是 6
㈣ C語言中三目運算符是什麼
選擇運算,就是A:B?C那個。
三目運算符為a?b:c即有三個參與運算的量。由條件運算符組成條件表達式的一般形式為:
其求值規則為:如果表達式1的值為真,則以表達式2的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用於賦值語句之中。
(4)三元運算符c語言擴展閱讀:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。
㈤ 誰能給我講講C語言中的三元運算符是怎麼回事
在C裡面只有一個三元運算符,型如a>b ?a:b 裡面有兩個符號,先是問號,再一個冒號,意思是,先判斷a>b,如果為真(值為1),則反回a,如果為假(值為0),既a<b,反回b.依你題目,char sex=getch();while(sex=='0' || sex=='1'){printf ("you are %s\n", (xb == '1')? "boy":"girl");}
㈥ c語言代碼中的條件運算符(三元),在檢查覆蓋率的時候,會當成一條還是兩條語句啊
a = (b>c)?1:0等效於:
if(b>c)
a=1;
else
a=0;
如果是檢查語句覆蓋率那麼應該是一條語句
如果是檢查路徑覆蓋率那麼應該是兩條路徑
㈦ C語言和:操作符怎麼用
C語言?和:是三目運算符,也叫三元運算符。
語法:表達式1 ? 表達式2 : 表達式3;
函數:先執行表達式1,執行完畢,如果表達式1的結果為真,則執行表達式2,整個表達式的結果就是表達式2的結果,否則執行表達式3,結果是表達式3的結果。
例如:int res=1?10:20;
可以簡單理解為表達式1成立嗎?成立執行表達式2,否則執行表達式3。
(7)三元運算符c語言擴展閱讀:
關於三目運算符的幾點說明:
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。如果值為非零,則條件為真,則求解表達式2,並將表達式2的值用作整個條件表達式的值;
如果表達式1的值為0,表示條件為假,則解方程3,表達式3的值是整個條件表達式的值。例如:
(a>=0)?a:-a執行的結果是a的絕對值。
3、在程序中,直接將條件表達式的值賦給變數。例如:
min=(a<b)的結果?a:b是將條件表達式的值賦給變數min,即a和b中的較小者賦給min。
㈧ C#的三元運算符是什麼
該操作首先求出條件表達式的值(bool類型),為true時調用表達式1,為flase時調用表達式2。其邏輯為:「如果為真執行第一個,否則執行第二個。」
例如:
a=3>4?3:4;輸出為4。
a=3<4?3:4;輸出為3。
㈨ 誰能給我講講C語言中的三元運算符是怎麼回事
如名字表示的三元運算符需要三個操作數。
語法為:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果為bool型,為true時調用表達式1,為false時調用表達式2。
其邏輯為:「如果為真執行第一個,否則執行第二個。」
㈩ c語言中三元運算符有哪些
c語言中只有一種三元運算符。
它就是「問號運算符」。
它的語法形式是:
表達式一?表達式二:表達式三
表達式一是一個數學表達式、關系表達式或邏輯表達式,它的邏輯值作為下一步運行的選擇:當邏輯值為真時,運行表達式二並返回表達式二的值;當邏輯值為假時,運行表達式三並返回表達式三的值。舉個例子:
x=3>2?8:100;
執行後,x=8。