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문은 세세한것 하나씩 다뤄줘야하는 구나 알게된것같다 ~