在上節《C語言if else語句》中看到,if 的判斷條件中使用了<=
、>
、!=
等符號,它們專門用在判斷條件中,讓程序決定下一步的操做,稱爲關係運算符(Relational Operators)。
關係運算符在使用時,它的的兩邊都會有一個表達式,好比變量、數值、加減乘除運算等,關係運算符的做用就是判明這兩個表達式的大小關係。注意,是判明大小關係,不是其餘關係。
C語言提供瞭如下關係運算符:html
關係運算符 | 含 義 | 數學中的表示 |
---|---|---|
< | 小於 | < |
<= | 小於或等於 | ≤ |
> | 大於 | > |
>= | 大於或等於 | ≥ |
== | 等於 | = |
!= | 不等於 | ≠ |
關係運算符都是雙目運算符,其結合性均爲左結合。關係運算符的優先級低於算術運算符,高於賦值運算符。在六個關係運算符中,<、<=、>、>=的優先級相同,高於==和!=,==和!=的優先級相同。
在C語言中,有的運算符有兩個操做數,例如 10+20,10和20都是操做數,+ 是運算符。咱們將這樣的運算符稱爲雙目運算符。同理,將有一個操做數的運算符稱爲單目運算符,將有三個操做數的運算符稱爲三目運算符。
常見的雙目運算符有 +、-、*、/ 等,單目運算符有 ++、-- 等,三目運算符只有一個,就是 ? :,咱們將在《C語言條件運算符》中詳細介紹。
關係運算符的兩邊能夠是變量、數據或表達式,例如:
1) a+b > c-d
2) x > 3/2
3) 'a'+1 < c
4) -i-5*j == k+1
關係運算符也能夠嵌套使用,例如:
1) a > (b > c)
2) a != (c == d)
關係運算符的運算結果只有 0 或 1。當條件成立時結果爲 1,條件不成立結果爲 0。例如:spa
咱們將運算結果 1 稱爲「真」,表示條件成立,將 0 稱爲「假」,表示條件不成立。
下面的代碼會將關係運算符的結果輸出:.net
運行結果:
1, 0
1, 1
0, 0
對於含多個關係運算符的表達式,如 k==j==i+5,根據運算符的左結合性,先計算k==j,該式不成立,其值爲0,再計算0==i+5,也不成立,故表達式值爲0。
須要提醒的是,==
才表示等於,而=
表示賦值,你們要注意區分,切勿混淆。code
if 語句的判斷條件中不是必需要包含關係運算符,它能夠是賦值表達式,甚至也能夠是一個變量,例如:htm
都是容許的。只要整個表達式的值爲非0,條件就成立。
上面兩種狀況都是根據變量 b 的最終值來判斷的,若是 b 的值爲非0,那麼條件成立,不然不成立。
又如,有程序段:ip
意思是,把 b 的值賦予 a,若是爲非0則輸出該值,不然輸出「a=0」字符串。這種用法在後面的程序中會常常出現。ci