[완료] (초보) C언어로 구구단 짝수만 출력하는 프로그램에서 질문드립니다.
글쓴이: kuroneko / 작성시간: 수, 2012/06/20 - 10:17오후
#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까지만 출력되는 프로그램을 만들어보라고 해서 다음과 같이 짜보았는데 컴파일해보니 아무것도 뜨지 않네요. 무엇이 잘못된 것일까요? 대략 조건에 맞추긴 한 것 같은데.. 어디서 오류가 났을까요?
Forums:
위의 소스를 보시면 if(i%2==1) 밑으로 괄호로
위의 소스를 보시면 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문이 실행될 여지가 없는 거죠.
댓글 달기