下面是一些代碼來檢查值的範圍內短路評估一種語言漏洞?
if((i <= n) && ((i+m) >= n){
//do something.....
};
這基本上是一個布爾和條件,如果兩個操作數爲真,則符合條件的結果是真介於英寸 但是,對於短路評估,C++只能測試第一個條件是否爲真,如果是,則不檢查第二個條件是否爲真。 在適當的數學意義上,這是一個布爾測試?這完全deranges我的代碼的邏輯,而是我不得不寫這樣的:
if((i <= n){
if((i+m) >= n){
//do something......
}
}
什麼是短路評價的意義,以及如何才能讓C++做一個適當的布爾測試,而無需使用嵌套if條件。
如果是星期二,並且她正在拜訪她的父母,那麼你就會欺騙你的妻子。你每個星期二都在欺騙她嗎? –
有人需要審查他們的[德摩根法律](https://en.wikipedia.org/wiki/De_Morgan%27s_laws) – CoryKramer
你有第二種情況的錯字 - 應該是我+ m – cup