Table
C언어의 기본 흐름 제어 구조
•
프로그램의 기본 실행 단위는 문장(statement)
◦
선언문: 자료형, 변수 선언 → int a;
◦
실행문: 동작 수행 → a += 10;
•
모든 문장은 세미콜론(;)으로 끝남
•
실행문은 기본적으로 순차적 실행
•
단, 흐름 제어문(control statement) 을 이용해
프로그램의 흐름을 조건에 따라 제어할 수 있음
선택 제어문
if문
조건식의 결과(참/거짓)에 따라 문장 실행을 분기함
단순 if 문
if (expr) statement;
C
복사
•
expr이 참(true)이면 statement 실행
•
거짓(false)이면 건너뜀
if ~ else 문
if (expr)
statement1;
else
statement2;
C
복사
•
expr이 참이면 statement1 실행
•
거짓이면 statement2 실행
다중 if문 (중첩 if)
if (expr1)
if (expr2)
statement1;
else
statement2;
else
statement3;
C
복사
•
else는 가장 가까운 if와 연결 → 따라서 중괄호 {}로 구분하는 것이 안전함
다중 if ~ else if ~ else문
if (score >= 90)
printf("A\n");
else if (score >= 80)
printf("B\n");
else if (score >= 70)
printf("C\n");
else if (score >= 60)
printf("D\n");
else
printf("F\n");
C
복사
switch 문
•
주어진 식(expression) 의 결과값에 따라 실행 경로를 선택
•
if문보다 값 기반 분기에 적합
기본 형식
switch (expr) {
case label1:
statements1;
break;
case label2:
statements2;
break;
...
default:
statementsd;
}
C
복사
•
break 문이 없으면 다음 case로 fall-through
•
default는 어느 case도 일치하지 않을 때 실행됨
예시
int score;
scanf("%d", &score);
switch (score / 10) {
case 10:
case 9: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("C\n"); break;
case 6: printf("D\n"); break;
default: printf("F\n");
}
C
복사
반복 제어문
종류 | 반복 조건 검사 시점 | 반복 횟수 예측 | 특징 |
for | 반복 전 | 명확 | 반복 횟수 지정에 적합 |
while | 반복 전 | 불명확 | 조건 만족 시 계속 반복 |
do-while | 반복 후 | 불명확 | 최소 1회 실행 보장 |
for문
for (초기식; 조건식; 증감식)
statement;
C
복사
•
반복 횟수가 정해진 경우 사용
•
변수 초기화 → 조건 검사 → 실행 → 증감 순으로 반복
예시
1부터 10까지의 합
int i, sum = 0;
for (i = 1; i <= 10; ++i)
sum += i;
printf("합 = %d\n", sum);
C
복사
중첩 for문 (다중 반복)
for (a = 1; a <= 3; a++) {
printf("a=%d\n", a);
for (b = 0; b < 4; b++)
printf("b=%d ", b);
putchar('\n');
}
C
복사
출력:
a=1
b=0 b=1 b=2 b=3
a=2
b=0 b=1 b=2 b=3
a=3
b=0 b=1 b=2 b=3
Plain Text
복사
while문
while (조건식)
statement;
C
복사
•
조건이 참이면 반복 수행
•
처음부터 거짓이면 한 번도 실행되지 않음.
예시
int i = 1, sum = 0;
while (i <= 10) {
sum += i;
i++;
}
printf("합 = %d\n", sum);
C
복사
do ~ while문
do {
statement;
} while (조건식);
C
복사
•
한 번은 무조건 실행
•
이후 조건이 참이면 반복
예시
int i = 1, n, sum = 0;
printf("n = ");
scanf("%d", &n);
do {
sum += i;
i++;
} while (i <= n);
printf("합 = %d\n", sum);
C
복사
기타 제어문
break
•
반복문 또는 switch문을 즉시 빠져나옴
•
중첩된 경우, 가장 안쪽 루프만 종료
continue
•
반복문 안에서 남은 문장을 건너뛰고 다음 반복으로 이동
goto
•
지정된 레이블(label) 로 무조건 이동
•
같은 블록 내에서만 이동 가능