본문 바로가기
IT/C

C언어 분기문 break /continue /goto / return

by -_-* 2021. 1. 12.
반응형

우리는 지난 포스트들에서 프로그램의 흐름을 제어할 수 있는 조건문과 반복문을 살펴보았습니다.

 

 

C언어 반복문

안녕하세요. 이미보라입니다. 지난 포스트에서 우리는 C언어 제어문에 대해서 알아보았습니다. 오늘은 C언어에서 지원하는 반복문에 대해서 살펴보도록 하겠습니다. 반복문이란, 한줄 이상의

bono0933.tistory.com

 

c언어 분기문 break, continue, goto, return

 

오늘은 분기문인 break, continue, goto, return 을 하나씩 알아봅시다. 

 

 

 

break 

break문의 경우 반복문이나 swich-case문을 수행하다가 제어를 밖으로 이동할 수 있는 기능을 제공합니다. 

 

break; 

 

break 예제

다음은 C언어 break 문의 예제입니다. 

#include <stdio.h>
  
int main(void) {

int index; 

for (index = 1 ; index <=5 ; index++)
{
    if (index ==3)
    break; //index가 3이라면 반복문 벗어나기

    printf("%d ", index);

}

printf("\n===end===\n");
return 0;
}
 

 

index를 정수형으로 선언하였습니다. 반복문 for문에 의해서 index가 1에서 5까지 1씩 증가하면서 반복이 이루어집니다. 반복문을 수행하다가 만약 index의 값이 3이라면 break 문을 만나서 반복문을 벗어납니다. 반복문 다음 명령문인 printf() 함수에 의해 end 문구가 출력되면서 프로그램은 종료됩니다. 

 

따라서 위 예제 프로그램의 실행 결과는 다음과 같습니다. 

 

 

 

continue

continue문의 경우 반복문에서 사용할 수 있습니다. 반복을 수행하다가 continue 문장을 만나면 그 이후 반복문 내부의 명령을 수행하지 않고 다음 index 값에 대한 반복을 계속해서 진행합니다. 

 

continue; 

 

continue 예제

다음은 C언어 continue 문의 예제 코드입니다. 

 

#include <stdio.h>
int main(void) {
int index; 

for (index = 1 ; index <=5 ; index++)
{
    if (index == 3)
    continue; // index가 3이면 index++ 증감식으로 바로 이동

    printf("%d ", index);

}

printf("\n ===end===\n");
return 0;
}

 

우리가 위에서 살펴본  break 문의 예제코드에서 break 명령문을 continue로만 변경했습니다. 

정수형 index 변수가 1부터 5까지 값을 1씩 증가하면서 반복문을 수행합니다. 

반복문이 수행될때 index의 값이 3이라면 더이상 반복을 진행하지 않고 index 값을 4로 변경하고, for문의 조건식이 만족할때 까지 계속 수행됩니다. index의 값이 6이 되면 for문은 종료되고 다음 명령어인 printf(); 함수에 의해 end를 출력하고 프로그램은 종료됩니다. 

 

따라서 프로그램의 실행 결과는 다음과 같습니다. 

 

 

 

goto

goto 문을 만나면 goto 문 뒤의 작성된 레이블이 위치한 곳으로 프로그램의 흐름을 이동하여 수행합니다. 

 

goto 레이블명; 

레이블명: 
... 

 

goto 예제

다음은 C언어의 goto 문 예제 코드입니다. 

 

#include <stdio.h>

int main(void) {
  
int index; 
  
for (index = 1 ; index <=5 ; index++)
{
    if (index ==3)
         goto here; //index 값이 3면 here 레이블로 이동
  
printf("%d ", index);
  
}
  
here:
printf("\n===here===\n");
return 0;
}

 

 정수형 index를 선언하고 for문에 의해서 1로 값이 초기화 되었습니다. index값이 1에서 5까지 1씩 증가하면서 반복문을 수행합니다. 반복문 내부에서 조건문 if에 의해 index값이 3인지 검사하고 만약 참이라면 goto문을 수행합니다. 

goto문에 의해 레이블 here 위치로 프로그램 제어 순서가 이동되어 here가 출력되고 종료됩니다. 

 

따라서 위의 예제 코드의 실행 결과는 다음과 같습니다. 

 

 

return

프로그램을 수행하다가 return문을 만나게 되면 함수를 호출한 곳으로 되돌아갑니다. 

 

retrun; 

 

return 예제

다음은 C언어의 return 문의 예제 코드입니다. 

#include <stdio.h>

int main(void) {
  
int index; 
  
for (index = 1 ; index <=5 ; index++)
{
   if (index ==3)
        return 1; //index 값이 3이라면 1을 반환하고 main함수 종료

printf("%d ", index);
  
}
printf("\n===end===\n");
return 0;
}

 

정수형 index를 선언하여 for문의 초기식에 의해 1로 초기화 됩니다. index는 1씩 증가하면서 5일때 까지 반복문을 수행합니다. 

반복문을 수행하면서 제어문을 통해서 index가 3이면 return문에 의해 1의 값을 가지고 main() 함수를 종료합니다. 

따라서 이하의 명령문은 더 이상 실행되지 않습니다.  그렇기 때문에 printf()함수에 의한 end 문자열은 출력되지 않습니다. 

 

위의 return문 예제 코드의 실행결과는 다음과 같습니다. 

 

 

오늘 알아본 C언어의 break, continue, goto , return 문을 적절하게 사용하면 프로그램의 흐름을 프로그램 작성자가 더욱 용이하게 제어할 수 있습니다. 다음 번 포스트에서는 C언어의 배열에 대해서 알아보도록 하겠습니다. 감사합니다. 

반응형

'IT > C' 카테고리의 다른 글

C언어 구조체  (0) 2021.01.14
c언어 배열  (0) 2021.01.13
C언어 반복문  (0) 2021.01.11
C언어 조건문  (0) 2021.01.10
C언어 연산자2  (0) 2021.01.02

댓글