안녕하세요 저는 이렇게 두 가지 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&&
당신은 당신이 하나가 충족되어야합니다 (논리 OR) 경우 둘 다
if(powerlevel <= 0 || src.health <= 0) { .. }
당신이 원하는 경우
if(powerlevel <= 0 && src.health <= 0) { .. }
또는 operator||
을 (논리 AND)을 충족 할 경우 두 진술 모두 논리 AND를 사용하십시오.
if(powerlevel <= 0 && src.health <= 0)
... 당신이 모두 true로 평가하려면 상황에 따라 다르다 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)
두 ... 또는 적어도 하나 ...
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)'...? Yikes! ;-) –
그래, 나는 약간 동의한다. 그러나 다른 사람들은 이미 && 버전을 제안했고 나는 한 줄로 그것을 할 수있는 방법을 묻기 때문에 그를 개념에 소개 할 것이라고 생각했다. – 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