Search

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