일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 윈윈전략
- 서치아이
- 옥션해킹
- 홀뎀
- 카일레라서버
- 틀린그림 찾기
- 게임 외주
- 맞고게임
- 옥션소송
- 고스톱
- 게임 개발
- 티스토리 초대장
- Mame32
- 상호링크
- 윈윈
- 판매
- 온라인게임
- 영어단어
- MAME
- 프로그램 외주
- 포커게임
- 프로그램 개발
- 카일레라
- 틀린그림찾기
- 보드게임
- 써치아이
- 포커
- 맞고
- 영어단어게임
- holdem
- Today
- Total
kyuseo의 게임 프로그래밍
if 구문에서 비교 연산(&&, ||)을 동시에 여러 개 할 경우 순서 본문
개요.. |
if 구문에서 비교 연산을 동시에 할 경우 어느 구문을 먼저 사용하고 생략하는지 Release 버전과 Debug 버전을 실험을 해보았습니다.
결론 |
- if 구문내의 모든 비교연산은 앞의 것부터 뒤의 것을 순차적으로 연산하고
- || 연산의 경우 앞의 것이 1개라도 참이라면 더 이상 연산을 하지 않고
- && 연산의 경우 앞의 것이 1개라도 거짓이라면 더 이상 연산을 하지 않습니다.
이러한 연산 순서를 알면 if 문을 유용하게 사용할 수 있습니다.
코드 |
if 구문의 strlen과 NULL 을 비교 하는 경우
BOOL is_1over_length( LPCSTR psz ) { if( psz != NULL && strlen( psz ) > 1 ) return TRUE; // NULL 부터 비교하기 때문에 어떠한 인자라도 정상 작동됨 return FALSE; } |
소스의 중요부분
AfxMessageBox( "if( A1(0) || A2(0) )" ); if( A1(0) || A2(0) ) { AfxMessageBox( "if( A1(0) || A2(0) ) == 1" ); }
AfxMessageBox( "if( A1(1) || A2(0) )" ); if( A1(1) || A2(0) ) { AfxMessageBox( "if( A1(1) || A2(0) ) == 1" ); }
AfxMessageBox( "if( A1(0) || A2(1) )" ); if( A1(0) || A2(1) ) { AfxMessageBox( "if( A1(0) || A2(1) ) == 1" ); }
AfxMessageBox( "if( A1(1) || A2(1) )" ); if( A1(1) || A2(1) ) { AfxMessageBox( "if( A1(1) || A2(1) ) == 1" ); }
AfxMessageBox( "if( A1(0) && A2(0) )" ); if( A1(0) && A2(0) ) { AfxMessageBox( "if( A1(0) && A2(0) ) == 1" ); }
AfxMessageBox( "if( A1(1) && A2(0) )" ); if( A1(1) && A2(0) ) { AfxMessageBox( "if( A1(1) && A2(0) ) == 1" ); }
AfxMessageBox( "if( A1(0) && A2(1) )" ); if( A1(0) && A2(1) ) { AfxMessageBox( "if( A1(0) && A2(1) ) == 1" ); }
AfxMessageBox( "if( A1(1) && A2(1) )" ); if( A1(1) && A2(1) ) { AfxMessageBox( "if( A1(1) && A2(1) ) == 1" ); } |