IT 공부/C언어
[C언어] Continue
하밋
2021. 7. 29. 16:39
오늘은 for문과 while문의 차이, 그리고 countinue 사용법에 대해 알게되었다.
1.문제 입력한 숫자까지 짝수 출력하기
```c
int main()
{
int count;
scanf("%d", &count); // 값을 입력받음
for (int i = 1; i <= count; i++) // 1부터 증가하면서 count보다 작거나 같을 때까지 반복
{
if (i % 2 != 0) // i를 2로 나누었을 때 나머지가 0이 아니면 홀수
continue; // 아래 코드를 실행하지 않고 건너뜀
printf("%d\n", i);
}
return 0;
}
```
이것은 for문으로 입력했을 때의 방식이고 while문으로 풀어보면 어떨까 해서 풀었지만 잘되지는 않았다.!
#include <stdio.h>
int main(void)
{
int count;
int i = 1;
scanf("%d",&count);
while(i <= count)
{
if(i%2 != 0)
{
i++;
continue;
}
printf("%d\n",i);
i++;
}
return(0);
}
for문에서는 초기식 조건식 증가식이 다있지만 while문은 그렇지 않기때문에 i++을 홀수를 걸러내기위한
if문 안에 하나 넣고, 그밖에 i++을 또 넣어야 한다.
if문안에 i++을 넣지 않고 continue만 넣는다면 continue의 특성상 밑에 코드들이 다 무시가 되고 while문을 돌기때문에 while의 조건식인 i <= count가 즉 1이므로 무한루프를 돌게된다.
그렇기때문에 홀수일때는 if문안에서 1증가하고 짝수일때는 if문을 거치지않기때문에 밖의 i++에서 1 증가하게하여 문제를 풀수있었다. 공부를 처음할때에는 while문이랑 for문의 큰차이를 알지못했는데
while문은 세세한것 하나씩 다뤄줘야하는 구나 알게된것같다 ~