✅ 1. C 언어의 흐름 제어
(1) C 언어의 기본 - 문장 흐름
[ 문장(statement) ]
- 선언이나 실행을 지시하는 표현의 기본 단위
- 선언문: 자료형, 변수 등을 선언하는 문장이다. 예: int a;
- 실행문: 동작을 수행하도록 지시하는 문장이다. 예: a += 10;
- 실행문은 함수 안에만 작성할 수 있음.
- 모든 문장은 세미콜론(;)으로 끝을 표시함
- 실행문은 나열된 순서에 따라 순차적으로 실행됨
- 흐름 제어문에 의해 순차적 흐름을 바꿀 수 있음.
(1) C 언어의 기본 - 흐름 제어 구조

- 프로그램을 작성할 때 일반적으로 사용하는 것이 위에서부터 차례대로 순차구조, 선택구조, 반복구조 이다.
- 이 세가지가 대표적으로 쓰이는 흐름 제어 구조이다.
✅ 2. 선택 제어문
(1) 선택 제어문이란?
- 지정된 조건에 따라 특정 위치로 이동하여 실행하는 분기 제어 구조를 의미함.
(2) 선택 제어문의 종류
- 대표적으로는 if 문, switch 문이 있음.
(3) if 문

- 조건식의 참 / 거짓의 결과에 따라서 실행되는 코드를 달라지게 만들 수 있음.
- statement 에 다수의 문장이 필요한 경우에는 블록으로 작성 할 수 있음. ( {} )
[ 블록 ]
- 한 개 이상의 문장을 중괄호 {}로 묶어 놓아 하나의 문장처럼 취급할 수 있게 한 것
- 지역변수를 포함할 수 있음
- '}'로 블록의 끝을 표시하므로 ';' 으로 끝마칠 필요 없음
[ C언어 - if 예시 ]

(4) if ~ else 문

- 조건식의 false 인 경우 else 블록의 코드가 수행이 된다.
[ C언어 - if ~ else 예시 ]

(5) else if 문

- 단순 else 는 if 조건식이 거짓인 경우 else 코드가 실행이 된다.
- 하지만, else if 문은 if 의 조건식이 거짓인 경우 else if 의 조건식을 보게되고, 조건식에 맞으면 else if 블록이 실행이 됨.
- 즉, 거짓의 경우 무조건 실행되는것은 else 문이고 또 다른 조건을 내거는건 else if 로 볼 수 있음.
(6) switch 문


- switch 문은 지정된 식의 값에 따라 실행할 문장을 선택할 수 있게 함.
- 즉, switch 문의 매개변수에 값이 들어가게 되면, case 문과 동일한 값의 조건식을 수행함.
- 매개변수의 값에는 정수 유형의 식만 들어갈 수 있음.
- label 에는 반드시 상수가 들어가야 한다.
- default: 모든 case 에 조건에 부합한다면 default 의 조건식을 수행하게 됨.
- break: 해당 조건식이 수행이 되고 다음 case 를 확인을 하게 되는데, 이때 다음 case 를 안보고 종료하기 위해 break 를 씀.
[ C언어 - switch 예시 ]

- break 문이 없기 때문에, 다음에 나올 case 들을 모두 출력을 하게 됨.
[ C언어 - switch break 예시 ]

- break 문을 통해 다음에 나올 case 들의 출력을 막고 해당 case 가 끝날 때 break 로 나가게 됨.
✅ 3. 반복 제어문
(1) 반복 제어문(loop, 루프)의 용도
- 정해진 조건에 따라 동일한 처리를 반복적으로 실행을 해준다.
(2) 반복 제어문의 유형

- for 루프, while 루프, do-while 루프 세 가지의 반복 제어문이 있음.
(3) for 문

- 반복 횟수가 명확한 경우에 주로 사용이 되며, 반복 횟수를 카운트하기 위한 변수를 사용을 한다.
- 반복 횟수를 비교연산자를 통해 명확하게 설정을 해줄 수 있음.
[ C언어 - for 예시 ]

[ 다중 for 문 ]

- for 문의 반복 실행할 문장이 for 문이 포함된 경우이다. ( 2차원 루프로 보면 됨 )
[ C언어 - 다중 for 예시 ]

(4) while 문

- 지정된 조건이 만족되는 동안 반복을 해준다.
- 초기의 조건이 거짓이면 반복문의 문장을 한 번도 실행하지 않을 수도 있음.
- 반면, 초기의 조건이 잘못되면 계속 true가 되어 무한 루프에 빠질 수 있음.
[ C언어 - while 예시 ]

(5) do-while 문

- while 과 동일하게 지정된 조건이 만족되는 동안 반복을 해준다.
- while 과 다른점은 반복문 내의 문장을 실행한 후 반복 실행 조건을 검사하게 됨.
- 즉, 반복 실행할 문장을 최소 1회는 반드시 실행을 하게 되고 이후에 실행 조건을 검사하게 된다.
[ C언어 - do while 예시 ]

✅ 4. 기타 제어문
(1) break 문
- switch, for, while, do - while 문에서 쓰이게 된다.
- switch 문에서는 case 실행 후 빠져 나오는 용도로 쓰인다.
- for, while, do - while 과 같은 반복문에서는 실행 중인 반복을 중지하고 빠져 나오는 용도로 쓰임.
(2) continue 문
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
if (i == 3)
continue; // i가 3일 때는 아래 printf 건너뛰기
printf("%d\n", i);
}
return 0;
}
- 반복문 실행 중 나머지 명령을 건너 뛴 후 반복을 재개한다.
- 쉽게말해, 위의 예시 코드를 보면 반복문 안에 조건문에서 i 가 3일 경우 continue; 키워드를 만나게 된다면 반복문 블록 안에서 다음 코드 라인을 무시하고, 다음 반복문의 조건 검사 부분으로 이동을 하게 된다. 즉, 해당 반복을 스킵하는 것이다.
(3) goto 문
- 지정된 레이블의 위치로 무조건 제어를 옮기게 도와주는 제어문이다.
- 프로그램의 흐름을 강제로 이동시키는 명령으로 볼 수 있음.
- 프로그램의 실행 흐름을 지정한 위치(label) 로 즉시 점프(jump) 시키는 명령이다.
- 주의 사항으로는 goto 명령이 포함되지 않은 블록의 레이블 위치로는 이동할 수 없다.
#include <stdio.h>
int main() {
int i = 1;
start: // 라벨 정의
printf("%d\n", i);
i++;
if (i <= 5)
goto start; // start 라벨로 점프
return 0;
}
// 출력 결과
// 1
// 2
// 3
// 4
// 5
- 위와 같이 goto 문을 사용 할 수 있는데, 프로그램이 goto start; 를 만나면 start: 라벨로 점프해서 다시 실행을 하는 것이다.
- 해당 코드는 마치 while 문처럼 반복이 만들어진 것처럼 보이게 될 수 있음. 이와 같이 응용해서 사용이 가능함.
- goto 는 되도록 쓰지말고, 예외 상황 처리용으로만 쓰는게 일반적인 원칙임.
✅ 5. 정리하기
- C 프로그램의 일반적인 흐름에 대한 제어 형태는 순차 제어, 선택 제어, 반복 제어로 나눌 수 있다.
- 그 외 보조 제어도 존재하는데 종류는 break, continue, goto 문이 있음.
- 순차 제어는 조건문이나 반복문이 없는 가장 단순한 제어 구조이며, 이는 프로그램이 위에서 아래로 순서대로 실행되는 기본적인 흐름으로 볼 수 있음. 이것이 순차 제어 or 순차 구조임.
- 프로그래밍 구조론에서는 순차 제어, 선택 제어, 반복 제어 세개로 나눠서 봄
'공부 > ⚙️C' 카테고리의 다른 글
| [C언어] 함수와 기억 클래스(2) (0) | 2025.10.15 |
|---|---|
| [C언어] 함수와 기억 클래스(1) (0) | 2025.10.15 |
| [C언어] 입출력 함수와 연산자(2) (0) | 2025.10.03 |
| [C언어] 입출력 함수와 연산자(1) (0) | 2025.09.05 |
| [C언어] 자료형과 선행처리기 (1) | 2025.08.29 |