Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ switch...case 문으로 만드는 간단한 사칙연산 계산기 프로그램

C++에서 두 수에 대한 덧셈, 뺄셈, 곱셈, 나눗셈 연산을 수행하는 간단한 계산기 프로그램을 살펴보겠습니다. 이 프로그램은 switch...case 문을 사용하여 입력된 연산자에 따라 알맞은 연산을 선택하는 방식으로 동작합니다.

전체 예제 코드

#include <iostream>
using namespace std;
void calculator(int a, int b, char op) {
    switch (op) {
        case '+': {
            cout<<"Sum of "<<a<<" and "<<b<<" is "<<a+b<<endl;
            break;
        }
        case '-': {
            cout<<"Difference of "<<a<<" and "<<b<<" is "<<a-b<<endl;
            break;
        }
        case '*': {
            cout<<"Product of "<<a<<" and "<<b<<" is "<<a*b<<endl;
            break;
        }
        case '/': {
            cout<<"Division of "<<a<<" and "<<b<<" is "<<a/b<<endl;
            break;
        }
        default:
        cout<<"Invalid Input"<<endl;
    }
}
int main() {
    calculator(5,4,'+');
    calculator(10,3,'-');
    calculator(3,2,'*');
    calculator(20,5,'/');
    calculator(5,2,'?');
    return 0;
}

실행 결과

Sum of 5 and 4 is 9
Difference of 10 and 3 is 7
Product of 3 and 2 is 6
Division of 20 and 5 is 4
Invalid Input

코드 상세 설명

1. calculator() 함수 선언

위 프로그램의 핵심인 calculator() 함수는 두 숫자에 대해 더하기, 빼기, 곱하기, 나누기를 수행하며, 이 모든 분기 처리는 switch 문으로 이루어집니다. 함수는 총 세 개의 매개변수를 받습니다. 연산을 수행할 두 개의 정수와, 어떤 연산을 수행할지 나타내는 문자(char)입니다.

void calculator(int a, int b, char op)

2. 덧셈 처리 (case '+')

첫 번째 case는 연산자가 '+'일 때 실행되며, 두 수를 더한 합계를 화면에 출력합니다.

case '+': {
    cout<<"Sum of "<<a<<" and "<<b<<" is "<<a+b<<endl;
    break;
}

3. 뺄셈 처리 (case '-')

두 번째 case는 연산자가 '-'일 때 실행되며, 두 수의 차를 계산하여 출력합니다.

case '-': {
    cout<<"Difference of "<<a<<" and "<<b<<" is "<<a-b<<endl;
    break;
}

4. 곱셈 처리 (case '*')

세 번째 case는 연산자가 '*'일 때 실행되며, 두 수의 곱을 계산하여 출력합니다.

case '*': {
    cout<<"Product of "<<a<<" and "<<b<<" is "<<a*b<<endl;
    break;
}

5. 나눗셈 처리 (case '/')

네 번째 case는 연산자가 '/'일 때 실행되며, 두 수를 나눈 결과를 출력합니다. 참고로 두 피연산자가 모두 정수이므로 결과 역시 정수(소수점 이하 버림)로 표시됩니다.

case '/': {
    cout<<"Division of "<<a<<" and "<<b<<" is "<<a/b<<endl;
    break;
}

6. 기본(default) 케이스 처리

default 케이스는 위 네 가지 연산자 외에 유효하지 않은 연산자가 전달되었을 때 실행되어 오류 메시지를 출력합니다.

default: cout<<"Invalid Input"<<endl;

7. main() 함수에서의 호출

main() 함수에서는 서로 다른 피연산자와 연산자를 조합하여 calculator() 함수를 여러 번 호출합니다. 마지막 호출에서는 유효하지 않은 연산자 '?'를 전달하여 default 케이스가 실행되는 과정도 확인할 수 있습니다.

calculator(5,4,'+');
calculator(10,3,'-');
calculator(3,2,'*');
calculator(20,5,'/');
calculator(5,2,'?');

참고: 실무에서 개선할 수 있는 부분

이 계산기를 실제 프로젝트로 확장한다면 다음 사항을 고려하는 것이 좋습니다.

  • 0으로 나누기 방지: 나눗셈을 수행하기 전에 두 번째 피연산자가 0인지 검사하면 런타임 오류를 예방할 수 있습니다.
  • 실수 연산 지원: 매개변수 타입을 double로 변경하면 소수점 결과까지 정확하게 표현할 수 있습니다.
  • 사용자 입력 처리: cin을 활용해 사용자로부터 직접 숫자와 연산자를 입력받도록 확장할 수 있습니다.