컴퓨터를 공부하고자 마음먹은지 N일차

[20일차](홍정모의따배c)루프도우미 continue와 break 본문

🖥C

[20일차](홍정모의따배c)루프도우미 continue와 break

졸린새 2020. 9. 28. 00:00
728x90

[20일차](홍정모의따배c)루프도우미 continue와 break

*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시

안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.

정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고

제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소

생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면

'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.

continue

  • 교수님코드
#include <stdio.h>

int main()
{
    for (int i = 0; i < 10; ++i)
    {
        if (i == 5)
            continue;
        
        printf("%d", i);
        
    }
    
    
    return 0;
}

반복문안에

(i == 5) if문이 있다.

여기서 continue를 만나면 어찌되냐

5를 빼고 출력하게 된다.

continue를 만나면 반복문의 처음으로 다시 돌아간다.

이름때문에 계속 진행하라!!라고 오해의 여지가 다소 있다.

  • 문제

위 내용을

continue없이 구현해보라.

  • 내코드
for (int i = 0; i < 10; ++i)
    {
        if (i == 5)
            i++;
        printf("%d", i);
    }

그냥 단순하게 생각해서

i가 5가되면 1을 더했다.

결과는 생각한대로 나왔당.

  • 교수님코드
if (i != 5)
            printf("%d", i);

ㄱ- 왜 생각을 못했지

퇴근하고와서 정신이 없나보다

코드를 구현위주로 생각말고 읽는사람을 생각해서

보기쉬운 코드를 만들자.

break

  • 교수님코드
#include <stdio.h>

int main()
{
		for (int i = 0; i < 10; ++i)
    {
        if (i == 5)
            break;
    
        printf("%d", i);
    }
    
    
    return 0;
}

그러면 break는 어떻게 작용하는가

아예 해당하는 반복문을 나와버린다

중첩되는 루프에서 break는 어떻게 작용할까?

  • 교수님코드
#include <stdio.h>

int main()
{
		for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            
            
            printf("(%d %d", i, j);
        
        }
        
        printf("\n");
    }
    
    
    return 0;
}

줄을 바꾸면서 숫자가 증가하는 코드다.

  • 교수님코드
#include <stdio.h>

int main()
{
		for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if (j == 5)
								break;
            
            printf("(%d %d", i, j);
        
        }
        
        printf("\n");
    }
    
    
    return 0;
}

그렇다 전체 반복문을 break하는게아니라 자기가 속해있는 반복문만

빠져나오게 한다

그러고 다시 상위반복문을 돌고

또 해당하는 break조건에 걸리면 다시 해당 반복문을 빠져나온다.

Comments