[완료] (초보) C언어로 구구단 짝수만 출력하는 프로그램에서 질문드립니다.

kuroneko의 이미지

#include <stdio.h>
 
int main()
{
	int c=1, i=1;
	while(1)
	{
		if(i>=10)
			break;
		if(i%2==1)
			i++;
			continue;
 
		while(1)
		{	
			if(c>i)
				break;
 
			printf("%dx%d=%d", c, i, c*i);
			c++;
		}
		i++;
	}
	return 0;
}

C언어 책에서 continue문과 break문 공부 중인데요,
이 두개를 이용해서 짝수 단을 출력하되 2단은 2x2까지만, 4단은 4x4까지, 6단은 6x6까지만, 8단은 8x8까지만 출력되는 프로그램을 만들어보라고 해서 다음과 같이 짜보았는데 컴파일해보니 아무것도 뜨지 않네요. 무엇이 잘못된 것일까요? 대략 조건에 맞추긴 한 것 같은데.. 어디서 오류가 났을까요?
fox9의 이미지

위의 소스를 보시면 if(i%2==1) 밑으로 괄호로 안 묶여있어서 i 변수의 값과 무관하게 무조건 continue가 실행되게 됩니다.

그래서 그 밑의 코드들은 모두 실행이 안됩니다.

익명 사용자의 이미지

if(i%2==1)
i++;
continue;

여기서 이렇게 바꿔줘야 됩니다.

if(i%2==1) {
i++;
continue;
}

명령이 한 줄인 경우는 중괄호를 생략해도 되지만 두 줄 이상이면 반드시 묶어줘야 합니다.
저 명령이 다음처럼 해석되기 때문에

if(i%2==1) {
i++;
}
continue;

printf문이 실행될 여지가 없는 거죠.