본문 바로가기
프로그래밍/C언어

C언어 - 제어문

by LostJourney 2024. 6. 16.
반응형

개요

제어문 혹은 점프문이라고 불리는 이 문법은 코드의 특정 부분을 건너뛰고, 루프를 조기에 종료하는 등 프로그램의 흐름을 제어하는데 중요한 역할을 한다.

오늘은 이 제어문 'break', 'continue', 'goto', 'return' 에 대해서 알아보자

 

 


break 문

 

'break' 문은 반복문이나 조건문 switch문을 즉시 종료하는 데 사용된다. 코드는 이 'break'를 만나면 그 흐름을 멈추고 그 코드블럭을 빠져나간다.

// 예시
#include <stdio.h>

int main() {
	// 0부터 9까지의 숫자를 출력합니다.
    for (int i = 0; i < 10; i++) {
    	// 'i'가 5면 'break'를 실행하며 루프를 종료시킵니다.
        if (i == 5) {
            break; 
        }
        printf("Iteration %d\n", i);
    }
    printf("Loop terminated at iteration 5.\n");
    return 0;
}

 

break문은 위처럼 특정 조건이 충족될때 반복을 종료하거나 'switch'문의 case를 종료할때 사용한다.

 


continue 문

 

' continue' 문은 루프의 현재 반복문의 이후 코드를 건너뛰고 다음 반복으로 넘어간다. 즉 반복문의 이후 흐름을 생략하고 다시 조건식으로 넘어간다는 것이다.

// 예시
#include <stdio.h>

int main() {
	// 0부터 9까지 숫자를 출력합니다.
    for (int i = 0; i < 10; i++) {
    	// 'i'가 5면 나머지 코드를 건너뛰고 다음 반복으로 넘어갑니다.
        if (i == 5) {
            continue;
        }
        printf("Iteration %d\n", i);
    }
    return 0;
}

 

continue문은 조건에 충족되거나, 혹은 충족되지 않아 특정 반복을 건너뛰게할때 사용한다.

 


goto 문

 

'goto' 문은 동일한 함수내에서 레이블이 지정된 코드로 점프하는 기능을 가졌다.

#include <stdio.h>

int main() {
    int i = 0;
    // 0부터 9까지의 숫자를 출력합니다.
    while (i < 10) {
    // 'i'가 5가 됐을때 'goto'문을 통해 'skip'라벨로 이동합니다.
        if (i == 5) {
            goto skip;
        }
        printf("Iteration %d\n", i);
        i++;
    }
skip: // goto를 통해 이 라벨로 이동
    printf("Skipped iteration 5\n");
    return 0;
}

보통 코드는 위에서 아래로, 좌에서 우로 흘러간다. 하지만 이 goto문은 그 흐름을 무시하고 무조건 문으로 점프하는 기능을 가졌다. 가독성을 해치며 다른사람이 볼때 코드의 흐름을 이해하기 어려워진다. 따라서 잘 사용되지않는 문법이다.

 


return 문

 

'return' 문은 함수를 종료하고 값을 반환할 수 있다. 함수의 끝에 도달했을때 함수를 종료하고 값을 반환하는데 사용된다.

아마 이 return 문은 익숙할것이다. 처음 c언어를 배웠을때 'int main()' 의 마지막에 'return 0' 를 봤기 때문이다. (사실 없어도 돌아가지만 관행상 넣어주는 편이다.)

#include <stdio.h>

// "Hello World" 출력 후 프로그램을 0값을 반환하며 끝낸다.
int main() {
    printf("Hello World!");    
    return 0;
}

 


마치며

제어문은 동적이고 유연한 방식으로 코드 흐름을 제어한다. 각 제어문의 사용 방법을 이해한다면 보다 효율적이고 최적화된 프로그램을 작성하는데 도움이 될 것이다.

반응형

'프로그래밍 > C언어' 카테고리의 다른 글

C언어 - 랜덤값  (2) 2024.06.27
C언어 - 형변환  (1) 2024.06.23
C언어 - 반복문  (4) 2024.06.10
C언어 - 조건문  (1) 2024.06.04
C언어 - 입력과 출력  (2) 2024.06.02