One Step Two Step
[C언어 기초] "if", "switch" 그리고 "goto"라는 조건문 본문
반응형
- 조건문 (condition statement)
- 프로그래머가 명시한 조건의 참·거짓에 따라 달라지는 계산 및 프로세스 상황을 수행하는 제어문
- 3가지 제어 구조 (모든 프로그램의 흐름을 구성하는 최소 단위)

- if
- 조건식의 참·거짓에 따라 특정 코드 블록을 실행하는 선택 제어문
if (조건식) {
// 조건이 참(true)일 때 실행
}
-------------------------------------------------------------------------
if(number > 0)
printf("양수"); // number가 5라면 "양수"가 출력되고 아니라면 아무것도 출력X
- if - else
if (조건식) {
// 조건이 참(true)일 때 실행
} else {
// 조건이 거짓(false)일 때 실행
}
-------------------------------------------------------------------------
// x가 0보다 크면 "양수" 출력 아니라면 "0 또는 음수" 출력
if (x > 0) {
printf("양수\n"); // 참일 경우 실행
} else {
printf("0 또는 음수\n"); // 거짓일 경우 실행
}
- if - else if - else
- 위에서부터 순차 비교
if (조건식1) {
문장1;
} else if (조건식2) {
문장2;
} else if (조건식3) {
문장3;
} else {
문장4;
}
-------------------------------------------------------------------------
if (score >= 90) {
grade = 'A'; // 90이상일 경우
} else if (score >= 80) {
grade = 'B'; // 90미만 80이상일 경우
} else if (score >= 70) {
grade = 'C'; // 80미만 70이상일 경우
} else {
grade = 'F'; // 위 조건에 만족 X
}
- 중첩 if
if (조건식1) {
if (조건식2) {
문장1; //조건식1과 조건식2를 만족하는 경우
}
}
-------------------------------------------------------------------------
if (x > 0) {
if (x % 2 == 0) {
printf("양수이면서 짝수\n");
}
}
- switch
- 하나의 값에 따라 여러 경우(case) 중 하나를 선택해 실행하는 선택 제어문
- if-else if를 정수/문자 기반 분기로 단순화한 구조
- 동작 원리
- switch(식)의 결과 계산
- 일치하는 case로 즉시 점프
- break를 만날 때까지 실행
- break 없으면 다음 case로 계속 실행 (fall-through)
- 주의할 점: 변수, 변수가 들어간 수식, 실수, 문자열 사용 불가능
switch (식) {
case 값1:
// 실행 코드
break;
case 값2:
// 실행 코드
break;
default:
// 어떤 case에도 해당하지 않을 때
}
----------------------------------------------
int menu = 2;
switch (menu) {
case 1:
printf("아메리카노\n");
break;
case 2:
printf("라떼\n");
break;
case 3:
printf("카푸치노\n");
break;
default:
printf("잘못된 선택\n");
}
- goto
-
조건없이 특정 위치로 이동
-
사용하지 않는 것이 매우 좋음 → 보안성 ↓, 코드의 유연성 저하, c언어 절차적 특성 무시(스파케티 코드)
-
goto label;
/* ... */
label:
// 이동 대상 코드
---------------------------------
int x = 0;
goto skip;
x = 10;
skip:
printf("%d\n", x); // 0 출력
문제 1. 대소문자 변환 프로그램을 만드시오.
case1.
문자를 입력하시오: W
입력한 문자(W)는 대문자 입니다.
입력한 문자의 소문자는 w입니다.
case2.
문자를 입력하시오: f
입력한 문자(f)는 소문자 입니다.
입력한 문자의 대문자는 F입니다.
case3.
문자를 입력하시오: 0
영어를 입력해주세요.
더보기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch; // 입력받을 문자 변수
printf("문자를 입력하시오: ");
scanf("%c", &ch);
if (65 <= ch && ch <= 90) { //아스키 코드 값 비교
printf("입력한 문자(%c)는 대문자 입니다.\n", ch);
printf("입력한 문자의 소문자는 %c 입니다.\n", ch + 32);
}
else if (97 <= ch && ch <= 122) {
printf("입력한 문자(%c)는 소문자 입니다.\n", ch);
printf("입력한 문자의 소문자는 %c 입니다.\n", ch - 32);
}
else
printf("영어를 입력해주세요. \n");
return 0;
}
반응형
'복습 > C언어' 카테고리의 다른 글
| [C언어 기초] 프로그램을 구성하는 핵심 부품, '함수(Function)' (1) | 2026.03.01 |
|---|---|
| [C언어 기초] 반복문 "while" / "do...while" / "for" (0) | 2026.02.28 |
| [C언어 기초] 수식과 연산자 (0) | 2026.02.26 |
| [C언어 기초] 데이터의 한계와 상수, 그리고 메모리 속의 숫자들 (0) | 2026.02.25 |
| [C언어 기초] 변수, 함수, 그리고 입출력 완벽 정리 (1) | 2026.02.24 |