반응형
5장: 조건문 (Selection Statements)
5.1 조건문의 개요
조건문은 프로그램에서 특정 조건에 따라 명령을 실행하거나 건너뛰는 방식을 제공합니다.
C 언어에서 사용하는 조건문은 다음과 같습니다:
- if문
- if-else문
- 중첩 if-else
- switch문
5.2 if문
if문은 조건이 **참(1)**일 때 명령을 실행합니다.
기본 형식
if (조건) {
명령문;
}
예제
#include <stdio.h>
int main(void) {
int num = 10;
if (num > 5) {
printf("num은 5보다 큽니다.\n");
}
return 0;
}
출력 결과:
num은 5보다 큽니다.
5.3 if-else문
if 조건이 참이면 if 블록을 실행하고, 거짓이면 else 블록을 실행합니다.
기본 형식
if (조건) {
명령문1;
} else {
명령문2;
}
예제
#include <stdio.h>
int main(void) {
int num = 3;
if (num > 5) {
printf("num은 5보다 큽니다.\n");
} else {
printf("num은 5보다 작거나 같습니다.\n");
}
return 0;
}
출력 결과:
num은 5보다 작거나 같습니다.
5.4 중첩 if-else문
if-else 문 안에 또 다른 if-else문을 중첩하여 사용할 수 있습니다.
예제
#include <stdio.h>
int main(void) {
int score = 85;
if (score >= 90) {
printf("A 학점\n");
} else {
if (score >= 80) {
printf("B 학점\n");
} else {
printf("C 학점\n");
}
}
return 0;
}
출력 결과:
B 학점
권장 형태 (else if)
중첩된 if-else문을 간결하게 작성하려면 else if를 사용합니다.
if (score >= 90) {
printf("A 학점\n");
} else if (score >= 80) {
printf("B 학점\n");
} else {
printf("C 학점\n");
}
5.5 switch문
switch문은 변수 값을 여러 **케이스(case)**로 분류해 처리할 때 사용됩니다.
기본 형식
switch (표현식) {
case 값1:
명령문1;
break;
case 값2:
명령문2;
break;
default:
명령문3;
}
- break: 현재 case를 종료하고 switch문을 빠져나감.
- default: 모든 case가 만족하지 않을 때 실행.
예제
#include <stdio.h>
int main(void) {
int day = 3;
switch (day) {
case 1:
printf("월요일\n");
break;
case 2:
printf("화요일\n");
break;
case 3:
printf("수요일\n");
break;
default:
printf("유효하지 않은 요일입니다.\n");
}
return 0;
}
출력 결과:
수요일
5.6 삼항 연산자 (?:)
삼항 연산자는 간단한 조건문을 하나의 표현식으로 줄여줍니다.
기본 형식
조건 ? 값1 : 값2;
- 조건이 참이면 값1 반환.
- 조건이 거짓이면 값2 반환.
예제
#include <stdio.h>
int main(void) {
int num = 10;
int result = (num > 5) ? 100 : 0;
printf("결과: %d\n", result);
return 0;
}
출력 결과:
결과: 100
5.7 조건문 활용 예제
1. 짝수/홀수 판별
#include <stdio.h>
int main(void) {
int num;
printf("숫자를 입력하세요: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d는 짝수입니다.\n", num);
} else {
printf("%d는 홀수입니다.\n", num);
}
return 0;
}
2. 점수 등급 판정
#include <stdio.h>
int main(void) {
int score;
printf("점수를 입력하세요: ");
scanf("%d", &score);
if (score >= 90) {
printf("A 등급\n");
} else if (score >= 80) {
printf("B 등급\n");
} else if (score >= 70) {
printf("C 등급\n");
} else {
printf("F 등급\n");
}
return 0;
}
3. 간단한 계산기 (switch 사용)
#include <stdio.h>
int main(void) {
int num1, num2;
char operator;
printf("연산을 입력하세요 (+, -, *, /): ");
scanf(" %c", &operator);
printf("첫 번째 숫자를 입력하세요: ");
scanf("%d", &num1);
printf("두 번째 숫자를 입력하세요: ");
scanf("%d", &num2);
switch (operator) {
case '+':
printf("결과: %d\n", num1 + num2);
break;
case '-':
printf("결과: %d\n", num1 - num2);
break;
case '*':
printf("결과: %d\n", num1 * num2);
break;
case '/':
if (num2 != 0)
printf("결과: %d\n", num1 / num2);
else
printf("오류: 0으로 나눌 수 없습니다.\n");
break;
default:
printf("유효하지 않은 연산자입니다.\n");
}
return 0;
}
반응형
'Computer Science > C 언어' 카테고리의 다른 글
[C #7] 기본 데이터 타입 (Basic Types) (1) | 2024.12.05 |
---|---|
[C #6] 반복문 (Loops) (0) | 2024.12.04 |
[C#4] 표현식 (Expressions) (0) | 2024.12.02 |
[C#3] 포맷 입력과 출력 (Formatted Input/Output) (0) | 2024.12.01 |
[C#2] C의 기초 (C Fundamentals) (1) | 2024.11.30 |