天天看點

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

關系運算符與邏輯運算符

  在算數運算符那一節當中,我們學習了以下幾種運算符以及它們的優先級:

  1. 指派運算符=

  2. 加法運算符+

  3. 減法運算符-

  4. 符号運算符+、-

  6. 乘法運算符*

  7. 除法運算符/

  8. 求餘運算符%

  9. 自增、自減運算符++,--

  并且還了解了它們的優先級。

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  使用括号可以先算括号裡面的運算符,和數學中一樣。類似于:

sum 
           

  上式未使用括号,*優先級高于+,b先乘以c,結果再加a。

  下式使用了括号,先算a+b,結果再乘以c。

  本節中,我們來繼續熟悉更多的運算符吧。

1. 關系運算符

1.1 大于>、小于<

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  1 > 2,結果為假。

在C語言中,用0表示假

  1 < 2,結果為真。

在C語言中,用1表示真

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  大于、小于表現在數軸上,如上圖所示。注意,N為空心。也就是不能取N。

  我們知道1 > 1,肯定結果為假的嘛。那如果我們想要可以取到N呢。那可以使用運算符,大于等于,或小于等于。

1.3 大于等于>=、小于等于<=

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符
C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符
C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

2. 等于==、不等于!=

  等于運算符以及不等于運算符,就單純的判斷運算符兩邊的值是否相等或不相等。

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  特别注意這裡的等于運算符==與不等于運算符!=,與數學裡面的不同。由于=号以及被作為指派了。是以相等在C語言裡面用兩個=來表示。

3. 邏輯運算符

  我們來看看在C語言裡面,怎樣表達數軸上的這兩個條件。

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  我們在上面了解了大于等于和小于等于的用法,但是目前好像沒法表示上面這兩個數軸的區間。

  第一個數軸區間:

x <= 2 或 x >= 10

  由于數值隻要滿足任意一個要求,就滿足要求,是以這裡我們用

  第二個數軸區間:

x >= 2 且 x <= 10

  由于數值要滿足兩個條件,才滿足要求,是以這裡我們用

  是以,這裡必須引入新的運算符,來表達這種情況。

3.1 邏輯或||、邏輯與&&

邏輯或運算符寫法為 ||, 兩條豎線。 邏輯與運算符寫法為 &&。

  第一個數軸區間:

(x <= 2) || (x >= 10)

  第二個數軸區間:

(x >= 2) && (x <= 10)

  我們在上面加了(),確定兩邊完成之後,再進行與運算、或運算。然而,事實上,這裡不加括号也是可以的。因為||和&&的運算符優先級比關系運算符>=、<=低。是以,按照優先級也會是先算兩邊,進行與、或。

  但是,為了着重一般會加上括号。在寫條件時,不要吝啬括号,這樣可以最大程度的保證程式按照你的想法執行。

  舉個反例:

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  假如我們用了一個運算符,放在中間。我們預想的效果是,先兩邊,兩邊的結果再進行中間的?運算。?的優先級如果低于<=和>=那麼一切将照常運作。問題是,如果?的優先級高于兩邊呢?那麼2 ? x會先進行運算。這樣程式運作的結果就會超出你的預料了。

3.2 邏輯非!

  使用邏輯非運算符,我們可以對目前的結果,取它的反向。

  例如,2 != 3,為真,但是如果加上邏輯非之後呢。

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

  它的結果就是假了。

  那我們再看看上面的區間,如果被邏輯非之後呢?

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符

4. 運算符優先級

C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符
C語言中幾個數互不相等_C語言中的關系運算符與邏輯運算符