Search
moon
sun

[C 프로그래밍] 선택 제어문과 반복 제어문

제목
Tag
작성일

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) 로 무조건 이동
•
같은 블록 내에서만 이동 가능