C if 括號中寫多個條件

2021-10-03 03:45:27 字數 3286 閱讀 2597

c++語言中if()中可以寫多個條件

&&:並且

||:或者

!:否定

&&、|| 和 !的優先順序從高到低依次為:

! > && > ||

比如:if(a>1 && a<100)表示a大於1且小於100;

if(a<1 || a>100)表示a小於1或者a大於100;

if(a%4 == 0 && a%100 !=0 || a%400 == 0)表a所代表的年份是閏年(年數是4的倍數且不是100的倍數或年數是400的倍數)。

以下內容修改自:

&& 運算子被稱為邏輯與運算子。它需要兩個表示式作為運算元,並建立乙個表示式,只有當兩個子表示式都為 true 時,該表示式才為 true。

以下是使用&& 運算子的 if 語句示例:

if

((temperature <20)

&&(minutes >12)

)cout <<

"the temperature is in the danger zone."

;

請注意,這兩個被邏輯與運算子連線在一起的表示式都是完整的表示式,它們的值可以被評估為 true 或 false。首先評估 temperature < 20 以產生 true 或 false 的結果,然後評估 minutes>12 以產生 true 或 false 的結果,最後,這兩個結果被 and 並列在一起,以得出整個表示式的最終結果。

僅當 temperature 小於 20 且 minutes 大於 12 時,cout 語句才會執行,其中只要有乙個表示式的結果被評估為 false,則整個表示式為 false,不執行 cout 語句。

注意,如果 && 運算子左側的子表示式為 false,則不會檢查右側的表示式。因為只要有乙個子表示式為 false,則整個表示式都為 false,所以再檢查剩餘的表示式會浪費 cpu 時間。這被稱為短路評估

|| 運算子被稱為邏輯或運算子。它需要兩個表示式作為運算元,並建立乙個表示式,當任何乙個子表示式為 true 時,該表示式為 true。

以下是乙個使用 || 運算子的 if 語句示例:

if

((temperature <20)

||(temperature >

100)

)cout <<

"the temperature is in the danger zone."

;

如果 temperature 小於 20 或者大於 100,那麼 cout 語句將被執行。這兩個子表示式只要其中乙個為 true,則整個表示式為 true,執行 cout 語句。

注意,被邏輯或連線在一起的兩件事情應該都是邏輯表示式,它們的值為 true 或 false,按以下形式書寫的if條件是不正確的:

if

(temperature <

20||

>

100)

只要其中乙個子表示式為 true,則整體表示式為 true,此時另外乙個子表示式無論是 false 還是 true 都無關緊要。

需要注意的是, || 運算子也將進行短路評估。如果 || 運算子左側的子表示式為 true,則右側的子表示式將不被檢查,因為只要有乙個子表示式為 true,那麼整體表示式就可以被評估為 true。

!運算子被稱為邏輯非運算子,執行邏輯 not 操作。它可以反轉乙個運算元的真值或假值。換句話說,如果表示式為 true,那麼 !運算子將返回 false,如果表示式為 false,則返回 true。

以下是乙個使用 !運算子的 if 語句示例:

if (!(temperature > 100))

cout << 「you are below the maximum temperature. \n」;

首先,表示式(temperature > 100) 將被測試為 true 或 false,然後!運算子被應用於該值。如果表示式(temperature > 100) 為 true,則!運算子返回 false。如果為 false,則!運算子返回 true。在該例子中,它相當於問「溫度是不是不大於 100 ? 」或「溫度大於 100 是不是假的?」

布林變數和!運算子

布林變數的乙個有趣特性是它的值可以簡單地通過命名來測試。假設 moredata 是乙個布林變數,其測試語句如下:

if (moredata == true)

它可以簡寫為:

if (moredata)

再來看以下語句:

if (moredata == false)

它可以使用邏輯非運算子簡寫為:

if (!moredata)

&& 、 || 和 !的優先順序為:

!> && > ||

!運算子比許多 c++ 運算子具有更高的優先順序。因此,為了避免錯誤,應始終將其運算元括在括號中,除非打算將其應用於沒有其他操作符的變數或簡單表示式。例如,來看以下表示式:

!(x > 2)

!x > 2

第乙個表示式將 !運算子應用於表示式 x > 2,它是在問「x 是否不大於 2」,然而,第二個表示式是將 !運算子應用於到 x。它是在問「x 的邏輯是否大於 2」。假設 x 被設定為 5,由於 5 是非零值,所以被認為是 true,而 !運算子會將其反轉為 false,即為 0,然後, > 運算子將確定 0 是否大於 2。為了避免這種錯誤,始終使用括號是明智的。

&& 和 || 運算子的優先順序低於關係運算子,這意味著關係表示式先進行計算,然後再通過 && 和 || 運算子進行評估,因此有:

a > b&& x < y 等同於(a > b) && (x < y)

a > b || x < y 等同於(a > b) | | (x < y)

因此,在關係運算子與 && 和 || 混合時,通常不需要括號。當然,無論如何,使用括號都是乙個好主意,因為它們可以讓程式更易讀。

在 && 和 || 同時使用的情況下,更是強烈地推薦使用括號,這是因為&& 的優先順序高於 ||。如果沒有括號表示執行順序,那麼 && 將永遠在 || 之前完成,這可能並不符合編寫者的初衷。

例如,假設有 3 個布林變數 recentgrad、employed 和 goodcredit,則以下表示式:

recentgrad || employed && goodcredit

等同於以下表示式:

recentgrad || (employ && goodcredit)

但是它並不等同於以下表示式:

(recentgrad || employed) && goodcredit

left join on多個條件怎麼寫

有時我們不僅需要用乙個欄位去關聯,還希望兩個表的兩個欄位都是一樣的,這時候可以這樣寫 select from select id,name,code from table1 aleft join select id,name,code from table2 bon a.id b.id and a....

vue v if 判斷某個元素滿足多個條件的寫法

v if判斷active滿足0的時候寫法是 v if active 0 那如果active同時要滿足0,1,2三個值的時候,如果在v if裡用 並列寫 如 v if active 0 active 1 active 2 這樣是可行的,但 有點冗餘 所以,最簡便的寫法就是 裡可以放字串,數值等 v i...

Python中if有多個條件處理方法

python中if有多個條件怎麼辦 python中if有多個條件,可以使用and or elif關鍵字來連線。python 程式設計中 if 語句用於控制程式的執行,基本形式為 if 判斷條件 執行語句 else 執行語句 if 大於 大於等於 小於等於 來表示其關係。當判斷條件為多個值是,可以使用...