인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hush park님의 프로필 이미지
hush park

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

비교 연산과 논리 연산

비교연산과 논리연산 질문있습니다.

작성

·

170

·

수정됨

0

16:42 에서 헷갈리는것이 있습니다.

test가 "죽었는가?(IsDead)"라는 의미의 변수일때,

처음에 'isInvincible' 을 'true', 즉 값 1로 설정하였으로, 'isInvincible == false' 이것이 '무적이냐? == 아니다' 로 해석될 때, 사망에 적합한 조건(무적아님)으로 해석이 되므로 그 결과가 1이 나와야 하지만, '1(isInvincible)==0(false)' => '0' 이 되어서 무적이 아님에도 불구하고 사망의 조건('1')에 부합하지 않는다는 해석이 되어버리는데 혹시 제가 잘못 이해하고 있는지 궁금합니다.

제 생각에는 isInvincible 변수를 처음에 초기화할때 '0'으로 둔다면 해석으로 보았을떄 정상적으로 작동하지 않을까 싶은데 솔직히 머리도 아프고 잘 모르겠습니다. 제가 잘못 이해하고 있는걸까요?

 

 

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

질문이 잘 이해가 안 갑니다.

'1(isInvincible)==0(false)' => '0' 이 되어서 무적이 아님에도 불구하고 사망의 조건('1')에 부합하지 않는다는 해석이 되어버리는데 혹시 제가 잘못 이해하고 있는지 궁금합니다.

잘 이해하셨습니다.
isInvincible 이 true라면, 무적 상태인 것이니
조건상 isDead = (hp <= 0 && isInvincible == false)는 false가 뜨겠죠.

말 그대로, 무적이기 때문에 죽지 않은 것으로 판별하는 예시입니다.

hush park님의 프로필 이미지
hush park

작성한 질문수

질문하기