▸C언어/개발 TIP

조건문(if)과 증감연산자(i++) 사용시 주의사항

코데방 2019. 12. 5.
728x90

후위 또는 전위 증감연산자 ++이나 --는 코드를 읽고 지나가기만 하면 작동됩니다. 쓰임은 다들 아실테지만 조건문에 잘 못 넣어서 의도와 다르게 작동할 때가 종종 있습니다.

아래 코드의 결과는 3입니다. 조건절에 하나도 걸린게 없음에도 i의 값이 3 증가되었습니다. if문의 조건을 세 번 통과하면서 ++i 가 작동했기 때문입니다. 만약 조건에 맞았을 때 i가 증가하도록 의도했다면 오작동하게 됩니다. 따라서 의도한 바가 아니라면 if문의 조건식 안에는 증감연산자를 넣지 않는 것이 좋습니다.

 

#include <stdio.h>

int main()
{
	int i = 0;

	if (++i == 12)
		puts("ㅇ.ㅇ");
	else if (++i == 12)
		puts("ㅇ.ㅇ");
	else if (++i == 12)
		puts("ㅇ.ㅇ");

	printf("%d", i);	// i의 값은 3이 되어 출력됨
}
728x90

댓글

💲 추천 글