您好我有這兩個單獨的IF語句,如果這樣放置;如何將兩個if語句合併爲一個
if(powerlevel<=0) // <--- ends up having no effect
if(src.health<=0)
the_thing_to_do();
如何將這兩個if語句合併爲一個?可能嗎?如果是的話如何?
您好我有這兩個單獨的IF語句,如果這樣放置;如何將兩個if語句合併爲一個
if(powerlevel<=0) // <--- ends up having no effect
if(src.health<=0)
the_thing_to_do();
如何將這兩個if語句合併爲一個?可能嗎?如果是的話如何?
使用operator&&
如果你想他們都被滿足(邏輯AND)
if(powerlevel <= 0 && src.health <= 0) { .. }
或operator||
如果你想只是一個被滿足(邏輯OR)
if(powerlevel <= 0 || src.health <= 0) { .. }
如果你想這兩個陳述是真實的使用邏輯與
if(powerlevel <= 0 && src.health <= 0)
如果你想要該聲明是真實的使用邏輯或
if(powerlevel <= 0 || src.health <= 0)
上述運營商兩者都是logical operators
非常感謝 – user2621004
邏輯運算符也有幾個SO線程:http://stackoverflow.com/questions/12332316/logical-operators-in-c –
+1爲鏈接 –
這取決於如果你想既要評價爲真...
if((powerlevel<=0) && (src.health<=0)) {
// do stuff
}
...或至少一個...
if((powerlevel<=0) || (src.health<=0)) {
// do stuff
}
區別在於邏輯AND(& &)或邏輯OR(||)
或者,如果你不想使用& &您可以使用三元運算符
#include <iostream>
int main (int argc, char* argv[])
{
struct
{
int health ;
} src;
int powerlevel = 1;
src.health = 1;
bool result((powerlevel <= 0) ? ((src.health <=0) ? true : false) : false);
std::cout << "Result: " << result << std::endl;
}
我真的很喜歡三元運算符,但' (x?true:false)'...?哎呀! ;-) –
是的,我有點同意,但其他人已經提出了&&版本,我想我只是向他介紹這個概念,因爲他正在尋求一種方法來做到這一點。 – bjackfly
只是一個aternative如果它是有意義的(有時)。
Both true:
if (!(src.health > 0 || powerlevel > 0)) {}
at least one is true:
if (!(src.health > 0 && powerlevel > 0)) {}
任何學習資源都應該在if語句後很快處理。 – chris
你是什麼意思「最終沒有效果」? – amdn
只是出於好奇,第一個陳述會有什麼影響?由於缺少{},它只會影響第二個if語句,對嗎?不是the_thing_to_do? – PunDefeated