프로그래밍/C, C++

C언어 조건문 완벽 정복 가이드: 심화편

ridev0901 2024. 11. 25. 15:03
728x90
300x250

if, else if, else, switch, 조건연산자:심화편

오늘은 조건문을 다양하게 활영하는 예제를 다루려합니다. 이전 포스팅 조건문 완벽 정복 가이드: 기초편에 대한 기본 지식을 가지고 이번 포스팅을 학습해보시죠~

2024.11.24 - [프로그래밍/C, C++] - C언어 조건문 완벽 정복 가이드: 기초편(if, else if, else, switch, 조건연산자)

 

C언어 조건문 완벽 정복 가이드: 기초편(if, else if, else, switch, 조건연산자)

if, else if, else, switch, 조건연산자오늘은 조건문을 연습해 보겠습니다. 이전 포스팅 기본 문법편에서 변수, 연산자, 자료형에 대한 기본 지식을 가지고 이번 포스팅을 학습해보시죠~2024.11.23 - [프

ridev0901.tistory.com

 

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