728x90
300x250
if, else if, else, switch, 조건연산자:심화편
오늘은 조건문을 다양하게 활영하는 예제를 다루려합니다. 이전 포스팅 조건문 완벽 정복 가이드: 기초편에 대한 기본 지식을 가지고 이번 포스팅을 학습해보시죠~
2024.11.24 - [프로그래밍/C, C++] - C언어 조건문 완벽 정복 가이드: 기초편(if, else if, else, switch, 조건연산자)
300x250
1. 조건문의 중첩
조건문은 마치 러시아 인형처럼 안에 또 다른 조건문을 포함할 수 있습니다. 이를 조건문의 중첩이라고 합니다. 복잡한 논리 흐름을 표현할 때 유용하게 사용됩니다.
int age = 20, height = 170;
if (age >= 18) {
if (height >= 170) {
printf("성인이고 키가 170cm 이상입니다.\n");
} else {
printf("성인이지만 키가 170cm 미만입니다.\n");
}
} else {
printf("미성년입니다.\n");
}
코드를 사용할 때는 주의가 필요합니다.
- 설명: 먼저 나이가 18세 이상인지를 확인하고, 그 다음 키가 170cm 이상인지를 확인하는 두 단계의 조건 검사를 수행합니다.
2. 조건문의 효율적인 사용법
- 불필요한 중첩 방지: 너무 많은 중첩은 코드를 복잡하게 만들고 가독성을 떨어뜨릴 수 있습니다. 논리 연산자 (&&, ||)를 사용하여 조건을 간결하게 표현할 수 있습니다.
- 조건 순서 고려: 자주 참이 되는 조건을 앞에 배치하면 불필요한 연산을 줄일 수 있습니다.
- break 문 활용: switch문에서 특정 case에 해당하는 코드를 실행한 후 다른 case를 검사하지 않도록 break 문을 사용합니다.
3. 실제 프로그램에서 조건문이 사용되는 예시
- 로그인 시스템: 입력한 아이디와 비밀번호가 일치하는지 확인합니다.
- 게임: 플레이어의 상태 (체력, 마나 등)를 확인하여 행동 가능 여부를 판단합니다.
- 데이터 유효성 검사: 입력받은 데이터가 올바른 범위 내에 있는지 확인합니다.
- 메뉴 선택: 사용자가 선택한 메뉴에 따라 다른 기능을 수행합니다.
// 메뉴 선택 예시
int menu;
printf("메뉴를 선택하세요 (1: 회원가입, 2: 로그인): ");
scanf("%d", &menu);
switch (menu) {
case 1:
// 회원가입 처리
break;
case 2:
// 로그인 처리
break;
default:
printf("잘못된 메뉴입니다.\n");
}
코드를 사용할 때는 주의가 필요합니다.
4. 조건문을 활용한 간단한 계산기 프로그램
#include <stdio.h>
int main() {
int num1, num2;
char op;
printf("두 개의 숫자와 연산자를 입력하세요: ");
scanf("%d %c %d", &num1, &op, &num2);
switch (op) {
case '+':
printf("%d + %d = %d\n", num1, num2, num1 + num2);
break;
case '-':
printf("%d - %d = %d\n", num1, num2, num1 - num2);
break;
case '*':
printf("%d * %d = %d\n", num1,
num2, num1 * num2);
break;
case '/':
if (num2 == 0) {
printf("
0으로 나눌 수 없습니다.\n");
} else {
printf("%d / %d = %f\n", num1, num2, (float)num1 / num2);
}
break;
default:
printf("잘못된 연산자입니다.\n");
}
return 0;
}
코드를 사용할 때는 주의가 필요합니다.
- 설명: 사용자가 입력한 두 숫자와 연산자에 따라 계산을 수행하고 결과를 출력합니다. 0으로 나누는 경우를 예외 처리하여 오류를 방지합니다.
조건문은 프로그램의 핵심적인 요소 중 하나입니다. 다양한 조건문을 효과적으로 활용하여 복잡한 문제를 해결하고, 유연하고 강력한 프로그램을 만들 수 있습니다.
다음 포스팅에서는 반복문에 대해 알아보고, 조건문과 반복문을 함께 사용하여 더욱 복잡한 알고리즘을 구현하는 방법을 살펴보겠습니다.
728x90
300x250
'프로그래밍 > C, C++' 카테고리의 다른 글
C언어 반복문 완벽 정복 가이드:심화편(for, while, do-while) (0) | 2024.11.27 |
---|---|
C언어 반복문 완벽 정복 가이드:기초편(for, while, do-while) (0) | 2024.11.26 |
C언어 조건문 완벽 정복 가이드: 기초편(if, else if, else, switch, 조건연산자) (1) | 2024.11.24 |
C언어 기본 문법(변수, 자료형, 연산자) (1) | 2024.11.23 |
C언어 시작과 기본 입출력(printf, scanf) (2) | 2024.11.22 |