공부 자료실/C언어

C언어 - break, continue, return

자료수집중 2020. 6. 17.
반응형

swith문에서 등장했던 break는 루프를 벗어날 때 사용합니다.

 

break는 swith문에서만 아니라 다양하게 사용할 수 있습니다.

대표적으로 반복문인 while문에서 보면

int num;
while (1) {
    printf("숫자를 입력해주세요(3입력시 탈출) : ");
    scanf("%d", &num);
    printf("입력된 숫자 : %d \n", num);
    if (num == 3) {
    	printf("탈출 \n");
    	break;
    }
}
printf("종료 \n");

while (1)은 무한 반복입니다. 하지만 3을 입력 받으면 break를 이용해서 while문을 벗어날 수 있습니다.

이렇게 while문 내에 조건문을 넣어 무한루프에서 벗어날 수 있게 만들어 주는 경우도 있습니다.

for문에서도 예를들어 구구단을 5단만 출력하기 싫다면

for (int i = 2; i < 10; i++) {
    for (int j = 1; j < 10; j++) {
        int num = i * j;

        if (i == 5) 
            break;

        printf("%d X %d = %d \t",i,j, num);
    }
    printf("\n");
}

5단에서 break를 사용 다음 6단으로 넘어갈 수 있게 해 줍니다.

*중첩 반복문(반복문 안에 반복문)에서 break 사용할 때 break가 들어간 반복문만 벗어나는 겁니다.

(break는 하나의 루프만 벗어날 수 있습니다.) 그래서 break의 위치도 중요합니다. 

 

continue문은 현재 실행 중인 코드를 생략하고 다음 코드로 넘어갑니다.

 

반복문에서 continue문을 보면

int num = 0;
while (1)
{
    num++;

    if (num % 3 == 0)
        continue;

    printf("num = %d \n", num);
		
    if (num == 40)
        break;
}

num은 루프가 시작되면 1씩 증가하고 3으로 나눴을 때 나머지가 0이면 continue문이 실행되게 했습니다.

num이 40이 되면 break가 실행돼서 무한 반복인while (1)을 벗어나게 했습니다.

결과를 보면

3의 배수들은 출력이 생략된 걸 볼 수 있습니다.

continue가 실행되면서 뒷부분의 코드를 모두 생략하고 다음 루프로 넘어가게 돼서 3의 배수들은 출력이 생략된 모습을 보여줍니다.

continue는 특정한 값이나 조건에 실행되는 코드를 생략하고 싶을 때 많이 사용합니다.

 

마지막으로

return은 함수에서 사용합니다.

현재 함수를 끝내고 값을 반환한다는 의미입니다.

그래서 return을 사용하면 즉시 함수를 끝내버립니다.

break랑 다른 개념이기 때문에 구분해서 사용해야 합니다.

위에 break예제에서 return으로 변경해서 실행해보면

int num;
while (1) {
    printf("숫자를 입력해주세요(3입력시 탈출) : ");
    scanf("%d", &num);
    printf("입력된 숫자 : %d \n", num);
    if (num == 3) {
    	printf("탈출 \n");
    	return 0;
    }
}
printf("종료 \n");

 

마지막 줄에 printf("종료 \n");가 실행되지 않고 종료해버립니다.

반환된 return값도 표시해줍니다.

main에서 반환된 return값은 운영체제에 반환됩니다.

 

'공부 자료실 > C언어' 카테고리의 다른 글

C언어 - 지역변수, 전역변수  (0) 2020.06.22
C언어 - 함수(function)  (0) 2020.06.18
C언어 - 반복문 for(), while()  (0) 2020.06.16
C언어 - 조건문 if(), swith()  (0) 2020.06.15
C언어 - 연산자  (0) 2020.06.12

댓글