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 大於 大於等於 小於等於 來表示其關係。當判斷條件為多個值是,可以使用...