continue문 질문좀 드리겠습니다.
물병자리
질문 내용 :
/* 파일 : continue.c */
#include stdio.h
#define LIMIT 10
int main(void)
{
int i=1, sum=0, miss;
printf(1과 %d 사이의 한 정수를 입력하세요 ,LIMIT);
scanf(%d,&miss);
for (; i =LIMIT; i++)
{
if (i % miss==0)
{
printf(%d는 더하기에서 제외합니다.\n,i);
continue;
}
sum +=i;
}
printf(1과 %d사이에서 %d 배수를 제외한 모든 정수의 합은 %d입니다. \n,LIMIT,miss,sum);
return 0;
}
여기서요.. 만약 제가 5를 입력했다면.. if 문장에서 i가 1이니 1%5=0이 아니잖아요 그래서 5는 더하기에서 제외합니다.가 출력
되잖아요. 그리고 다시 위로 올라가서 2%5~10%5 까지 과정을 거치면 5의 배수 5,10만 제외되잖아요..
근데 이 구조에서 언제 sum 을 거치는건가요? 2,3,4,6,7,8,9 같은 수가 %5랑 했을때 0이 안나오면 sum 을 거쳤다가 i++ 로 가나요?
아님 i++ 다 하고 나중에 제외안된 숫자 sum하는건가요??
sum +=i 가 sum=sum+i 잖아요.. 제 생각은 거쳤다가 가는것 같은데,,, 책에서는
continue 만나면 증감연산으로 바로 이동한다고 되어 있는데... 어떻게 되는건지 설명좀 부탁드리겠습니다.
-
두루
제가 나눗셈 생각을 잠시 잘못해서,, 전체적으로 헷갈려버렸네요.. 답변 감사합니다
-
다미
if문에서 contiue문을 넣으셨는데 즉 if문 {} 안 continue 밑에있는 문법을 건너 뛴다는 소리인데 sum+=i는 그 밖에있으니 포문이 돌때마다 실행이 되는거죠