本文目錄一覽:
c語言的條件符號怎麼用
這是一個複合條件表達式
可以加括弧變為wx?w:(zy?z:x)
你可以看到最後實際上格式為x op y ? z :w的樣子
就是表示要是x與y的關係成立,則取z的值作為條件表達式的值,捨去w的值不用,
相反,則捨去z的值,取w的值。
如果是複合的,則從右往左算,規則一樣
c語言表示&&和||各表示什麼
「」表示 與,意為同時都要滿足。「||」表示 或,意為二者或多著只要滿足其中一個。在C語言中,和||都屬於邏輯運算符,並且都是雙目運算符。
邏輯運算符總共有3個,分別是””、”||”和”!”。a b,一假必假,結合性從左至右。||是邏輯或運算符,a || b,一真必真,結合性從左至右。
和||在Java和PHP以及c#中都是邏輯操作符,也叫條件操作符。
關於c語言的表達符號,可以到達內了解一下,達內時代科技集團有限公司(簡稱達內教育),成立於2002年。2014年4月3日成功在美國上市。成為中國赴美國上市的職業教育公司,也是引領行業的職業教育公司。達內擁有行業內完善的教研團隊,200餘位總監級講師,1000餘名教研人員,全方位保障學員學習。C語言免費試聽。
在c語言中,何為條件運算符!具體的條件運算符有哪些?
計算機具有邏輯判斷能力,其判斷的依據是計算機內部進行邏輯運算的結果。C語言提供了關係運算和邏輯運算,用來構造C程序控制中的條件,實現程序的選擇結構和循環結構控制。
關係運算和邏輯運算的結果都是邏輯值,即”真”和”假”。由於C語言中沒有邏輯型數據,因此C語言規定用整型數據來表示邏輯值。即:用整數值1表示邏輯”真”,用整數值0表示邏輯”假”。在C語言中,將非0就視為”真”。
3.4.1
關係運算符與關係表達式
1.
關係運算符
關係運算實際上是邏輯比較運算,它是邏輯運算中的一種。關係運算符的作用是確定兩個數據之間是否存在某種關係。C語言規定的6種關係運算符及其有關的說明見表3-6。
表3-6
算術運算符
運算符
含義
運算對象個數
結合方向
簡例
大於
雙目運算符
自左至右
ab,38
=
大於等於
雙目運算符
自左至右
a=b,3=2
小於
雙目運算符
自左至右
ab,38
=
小於等於
雙目運算符
自左至右
a=b,3=b
!
=
不等於
雙目運算符
自左至右
a!=b,3!=5%7
=
=
恆等於
雙目運算符
自左至右
a==b,3==5*a
關係運算符都是雙目運算符,其結合性是從左到右結合。優先順序分為兩級:
高級:<、<=、>、>=
低級:==、!=
關係運算符的優先順序低於算術運算符。
2.
關係表達式
用關係運算符將兩個表達式連接起來的式子稱為關係表達式。它的一般形式為:
表達式1
關係運算符
表達式2
其中,關係運算符指明了對表達式所實施的操作。”表達式1″和”表達式2″是關係運算的對象,它們可以是算術表達式、關係表達式、邏輯表達式、賦值表達式和字元表達式。但一般關係運算要求關係運算符連接的兩個運算對象為同類型數據。例如:
a+b3*c
兩個算術表達式的值作比較
(a=b)(b=10%c)
兩個賦值表達式的值作比較
(a=b)==(bc)
兩個關係表達式的值作比較
‘A’!=’a’
兩個字元表達式的值作比較
關係式只有兩種可能的結果:或者它所描述的關係成立,或者這個關係不成立,所以說一個關係表達式描述的是一種邏輯判斷。若關係成立,說明關係式表述的關係是”真”的,稱邏輯值為”真”,用1表示;若關係不成立,說明關係式表述的關係是”假”的,稱邏輯值為”假”,用0表示。所以關係表達式的運算結果一定是邏輯值。
進行關係運算時,先計算表達式的值,然後再進行關係比較運算。例如:
a=2,b=3,c=4,則上述關係表達式的值為:
a+b3*c
(512)關係不成立
表達式結果值為0(假)
(a+=b)(b*=10%c)
(56)
關係成立
表達式結果值為1
(真)
(a=b)==(bc)
(1==0)關係不成立
表達式結果值為0(假)
‘A’!=’a’
(65!=97)關係成立
表達式結果值為1(真)
以關係表達式”a+b3*c”為例,因為算術運算的優先順序高於關係運算,所以先計算a+b和3*c的值,結果分別為5和12,再將5和12進行關係比較,其運算結果為0。
在表達式中連續使用關係運算符時,要注意正確表達含義,注意運算優先順序和結合性。
例如,變數x的取值範圍為”0≤x≤20″時,不能寫成”0=x=20″。因為關係表達式”0=x=20″的運算過程是:按照優先順序,先求出”0=x”的結果,再將結果1或0作”=9″的判斷,這樣無論x取何值,最後表達式一定成立,結果一定為1。這顯然違背了原來的含義。此時,就要運用下面介紹的邏輯運算符進行連接,即應寫為:”0=x
x=9″。
3.4.2
邏輯運算符與邏輯表達式
1.邏輯運算符
C語言規定的3種邏輯運算符及其有關的說明見表3-7。
表3-7
邏輯運算符
運算符
含義
運算對象個數
結合方向
簡例
邏輯與
雙目運算符
自左向右
ab,38a==b
||
邏輯或
雙目運算符
自左向右
a||b,3=b8||a==b
!
邏輯非
單目運算符
自右向左
!a,!a==b
邏輯運算要求運算對象為”真”(非0)或”假”(0)。這三種邏輯運算符的運算規則可用表3-8的真值表表示:
表3-8
邏輯運算真值表
a
b
ab
a||b
!a
!b
1
1
非0
1
1
非0
1
1
非0
非0
1
1
在一個邏輯表達式中,可以含有多個邏輯運算符,其優先順序是:”!”最高,””次之,”||”最低;邏輯運算優先順序低於所有關係運算,而”!”優先順序高於所有算術運算。
例如:某程序中有如下說明:int
a=3,b=1,
x=2,
y=0;則:
①
(ab)
(xy)
的值為1。
②
ab
xy
的值為1。
注意:①②兩式是等價的,因為””運算優先順序低於關係運算,故括弧可以省略。
③
(y||b)
(y||a)
的值為1。
④
y||b
y||a
的值為1。
注意:③④兩式結果雖然一樣,但兩式的含義不同。③式中由於括弧的優先順序高於””,因此,先計算”y||b”和”y||a”後,再將兩個結果進行””運算。而④式由於””的優先順序高於”||”,故要先計算”by”,其結果為0,再計算”y||0″,其值也為0,最後計算”0||a”,結果為1。由此可見,運算符的優先順序制約著表達式的計算次序。
⑤
!a
||
ab
的值為1。
此式中”!”的優先順序高於”>”,而
“>”的優先順序高於”||”,故先計算”!a”,其值為0,再計算”ab”,其值為1,最後計算”0||1″,值為1。
3.4.3
條件運算符與條件表達式
條件運算符是C語言中唯一具的三目運算符,就是說它有三個運算對象。條件運算符的形式是”?
:”由它構成的表達式稱為條件表達式。其形式為:
表達式1
?
表達式2
:
表達式3
條件運算符的”?”個”:”總是成對出現的。條件表達式的運算功能是:先計算表達式1的值,若值為非0,則計算表達式2的值,並將表達式2的值作為整個條件表達式的結果;若表達式1的值為0,則計算表達式3的值,並將表達式2的值作為整個條件表達式的結果。例如有以下條件表達式:
(ab)?a+b:a-b
當a=8,b=4,c=3時,求解條件表達式的過程如下:
先計算關係式ab,結果為1,因其值為真,則計算a+b的結果為12,這個12就是整個條件表達式的結果。請特別注意,此時不再計算表達式a-b了。如果關係式ab的結果為0,就不再計算表達式a+b了。這一點在應用中很重要。
條件表達式的優先順序高於賦值運算,但低於所有關係運算、邏輯運算和算術運算。其結合性是自右向左結合,當多個條件表達式嵌套使用時,每個後續的”:”總與前面最近的、沒有配對的”?”相聯繫。例如在條件表達式”a0
?
a/b:a0
?
a+b:a-b”中,出現兩個條件表達式的嵌套,求解這個表達式時先計算後面一個條件表達式”a0
?
a+b:a-b”的值,然後再與前面的”a0
?
a/b:”組合。
使用條件表達式可以使程序簡潔明了。例如,賦值語句”z=(ab)?a:b
“中使用了條件表達式,很簡潔地表示了判斷變數a與b的最大值並賦給變數z的功能。所以,使用條件表達式可以簡化程序
例3-8:定義高等數學中常用的符號函數sign的數學定義如下。
.
對應的C函數定義如下:
/*
L3_8.C
*/
double
sign(double
x)
{
return
x0
?
1:(x==0
?
0:-1);
}
原創文章,作者:QAYM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145910.html