본문 바로가기
Java_language

Java Example of implementing the four arithmetic operation method

by 헬로제이콥 2025. 11. 24.

 

💡 Java 사칙연산 메서드 구현 예제

Java에서 두 정수(int)를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 기본적인 메서드들을 구현하는 예제입니다. 이 예제는 메서드 선언, 매개변수 사용, 그리고 반환(return)의 개념을 이해하는 데 도움이 될 것입니다.

1. 예제 코드

Java
 
public class ArithmeticOperations {

    // 덧셈 메서드
    // 두 정수(a, b)를 더한 결과를 반환합니다.
    public static int add(int a, int b) {
        return a + b;
    }

    // 뺄셈 메서드
    // 두 정수(a에서 b를 뺀) 결과를 반환합니다.
    public static int subtract(int a, int b) {
        return a - b;
    }

    // 곱셈 메서드
    // 두 정수(a, b)를 곱한 결과를 반환합니다.
    public static int multiply(int a, int b) {
        return a * b;
    }

    // 나눗셈 메서드
    // 두 정수(a를 b로 나눈) 결과를 반환합니다. 
    // 정수 나눗셈이므로 소수점 이하는 버려집니다.
    // 0으로 나누는 경우를 방지하기 위해 간단한 예외 처리를 추가했습니다.
    public static int divide(int a, int b) {
        if (b == 0) {
            System.out.println("오류: 0으로 나눌 수 없습니다.");
            return 0; // 또는 다른 오류 처리 방식을 사용
        }
        return a / b;
    }

    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 5;

        // 각 메서드를 호출하고 결과를 출력합니다.
        int sum = add(num1, num2);
        System.out.println("덧셈 결과: " + num1 + " + " + num2 + " = " + sum); // 15

        int difference = subtract(num1, num2);
        System.out.println("뺄셈 결과: " + num1 + " - " + num2 + " = " + difference); // 5

        int product = multiply(num1, num2);
        System.out.println("곱셈 결과: " + num1 + " * " + num2 + " = " + product); // 50

        int quotient = divide(num1, num2);
        System.out.println("나눗셈 결과: " + num1 + " / " + num2 + " = " + quotient); // 2
        
        // 0으로 나누는 경우 테스트
        int divideByZero = divide(10, 0); // 오류 메시지 출력 후 0 반환
        System.out.println("0으로 나눈 결과: " + divideByZero);
    }
}

2. 코드 설명

  • public static int add(int a, int b):
    • public: 이 메서드가 어디서든 접근 가능함을 의미합니다.
    • static: 객체를 생성하지 않고도 이 메서드를 호출할 수 있게 합니다 (클래스이름.메서드이름() 형태로 사용).
    • int: 메서드가 정수(int) 타입의 결과를 반환함을 의미합니다 (반환 타입).
    • add: 메서드의 이름입니다.
    • (int a, int b): 이 메서드가 호출될 때 두 개의 정수 값을 매개변수(parameter)로 받는다는 것을 의미합니다.
  • return a + b;:
    • a와 b를 더한 계산 결과를 메서드를 호출한 곳으로 반환합니다.
  • divide 메서드의 0 처리:
    • divide 메서드에서 if (b == 0)을 사용하여 두 번째 숫자가 0인지 확인합니다. 수학적으로 0으로 나누는 것은 불가능하므로, 실제 연산 전에 오류 메시지를 출력하고 특정 값(여기서는 0)을 반환하여 프로그램이 비정상적으로 종료되는 것을 방지하는 기본적인 예외 처리를 했습니다.
  • main 메서드:
    • 이 메서드는 자바 프로그램의 시작점입니다.
    • add(num1, num2)와 같이 메서드 이름을 사용하여 구현된 사칙연산 메서드를 호출하고, 반환된 값을 변수에 저장하여 사용합니다.

이 예제를 통해 자바에서 메서드를 정의하고 사용하는 기본적인 방식을 이해할 수 있을 거예요!

💡 Java 사칙연산 메서드 구현 예제

Java에서 두 정수(int)를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 기본적인 메서드들을 구현하는 예제입니다. 이 예제는 메서드 선언, 매개변수 사용, 그리고 반환(return)의 개념을 이해하는 데 도움이 될 것입니다.

1. 예제 코드

Java
 
public class ArithmeticOperations {

    // 덧셈 메서드
    // 두 정수(a, b)를 더한 결과를 반환합니다.
    public static int add(int a, int b) {
        return a + b;
    }

    // 뺄셈 메서드
    // 두 정수(a에서 b를 뺀) 결과를 반환합니다.
    public static int subtract(int a, int b) {
        return a - b;
    }

    // 곱셈 메서드
    // 두 정수(a, b)를 곱한 결과를 반환합니다.
    public static int multiply(int a, int b) {
        return a * b;
    }

    // 나눗셈 메서드
    // 두 정수(a를 b로 나눈) 결과를 반환합니다. 
    // 정수 나눗셈이므로 소수점 이하는 버려집니다.
    // 0으로 나누는 경우를 방지하기 위해 간단한 예외 처리를 추가했습니다.
    public static int divide(int a, int b) {
        if (b == 0) {
            System.out.println("오류: 0으로 나눌 수 없습니다.");
            return 0; // 또는 다른 오류 처리 방식을 사용
        }
        return a / b;
    }

    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 5;

        // 각 메서드를 호출하고 결과를 출력합니다.
        int sum = add(num1, num2);
        System.out.println("덧셈 결과: " + num1 + " + " + num2 + " = " + sum); // 15

        int difference = subtract(num1, num2);
        System.out.println("뺄셈 결과: " + num1 + " - " + num2 + " = " + difference); // 5

        int product = multiply(num1, num2);
        System.out.println("곱셈 결과: " + num1 + " * " + num2 + " = " + product); // 50

        int quotient = divide(num1, num2);
        System.out.println("나눗셈 결과: " + num1 + " / " + num2 + " = " + quotient); // 2
        
        // 0으로 나누는 경우 테스트
        int divideByZero = divide(10, 0); // 오류 메시지 출력 후 0 반환
        System.out.println("0으로 나눈 결과: " + divideByZero);
    }
}

2. 코드 설명

  • public static int add(int a, int b):
    • public: 이 메서드가 어디서든 접근 가능함을 의미합니다.
    • static: 객체를 생성하지 않고도 이 메서드를 호출할 수 있게 합니다 (클래스이름.메서드이름() 형태로 사용).
    • int: 메서드가 정수(int) 타입의 결과를 반환함을 의미합니다 (반환 타입).
    • add: 메서드의 이름입니다.
    • (int a, int b): 이 메서드가 호출될 때 두 개의 정수 값을 매개변수(parameter)로 받는다는 것을 의미합니다.
  • return a + b;:
    • a와 b를 더한 계산 결과를 메서드를 호출한 곳으로 반환합니다.
  • divide 메서드의 0 처리:
    • divide 메서드에서 if (b == 0)을 사용하여 두 번째 숫자가 0인지 확인합니다. 수학적으로 0으로 나누는 것은 불가능하므로, 실제 연산 전에 오류 메시지를 출력하고 특정 값(여기서는 0)을 반환하여 프로그램이 비정상적으로 종료되는 것을 방지하는 기본적인 예외 처리를 했습니다.
  • main 메서드:
    • 이 메서드는 자바 프로그램의 시작점입니다.
    • add(num1, num2)와 같이 메서드 이름을 사용하여 구현된 사칙연산 메서드를 호출하고, 반환된 값을 변수에 저장하여 사용합니다.



 

💻 Java 사칙연산 계산기 코드

Java
 
import java.util.Scanner;

public class SimpleCalculator {

    public static void main(String[] args) {
        // 1. Scanner 객체 생성
        Scanner scanner = new Scanner(System.in);

        // 2. 값 입력 받기
        System.out.println("간단한 사칙연산 계산기");

        // 첫 번째 값 (1값) 입력
        System.out.print("첫 번째 숫자(1값)를 입력하세요: ");
        double num1 = scanner.nextDouble();

        // 연산자 입력
        System.out.print("연산자(+, -, *, /)를 입력하세요: ");
        String operator = scanner.next();

        // 두 번째 값 (2값) 입력
        System.out.print("두 번째 숫자(2값)를 입력하세요: ");
        double num2 = scanner.nextDouble();

        double result = 0; // 결과를 저장할 변수

        // 3. switch문으로 연산자 처리
        switch (operator) {
            case "+":
                // 덧셈 함수 호출
                result = add(num1, num2);
                break;
            case "-":
                // 뺄셈 함수 호출
                result = subtract(num1, num2);
                break;
            case "*":
                // 곱셈 함수 호출
                result = multiply(num1, num2);
                break;
            case "/":
                // 나눗셈 함수 호출 및 0으로 나누는 경우 처리
                if (num2 != 0) {
                    result = divide(num1, num2);
                } else {
                    System.out.println("오류: 0으로 나눌 수 없습니다.");
                    scanner.close();
                    return; // 프로그램 종료
                }
                break;
            default:
                // 유효하지 않은 연산자 처리
                System.out.println("오류: 유효하지 않은 연산자입니다.");
                scanner.close();
                return; // 프로그램 종료
        }

        // 4. 결과 출력
        System.out.println("--- 결과 ---");
        System.out.println(num1 + " " + operator + " " + num2 + " = " + result);

        // Scanner 닫기
        scanner.close();
    }

    // --- 사칙연산 함수(메서드) 구현 ---

    /**
     * 두 수의 덧셈 결과를 반환합니다.
     * @param a 첫 번째 수
     * @param b 두 번째 수
     * @return 덧셈 결과
     */
    public static double add(double a, double b) {
        return a + b;
    }

    /**
     * 두 수의 뺄셈 결과를 반환합니다. (a - b)
     * @param a 첫 번째 수
     * @param b 두 번째 수
     * @return 뺄셈 결과
     */
    public static double subtract(double a, double b) {
        return a - b;
    }

    /**
     * 두 수의 곱셈 결과를 반환합니다.
     * @param a 첫 번째 수
     * @param b 두 번째 수
     * @return 곱셈 결과
     */
    public static double multiply(double a, double b) {
        return a * b;
    }

    /**
     * 두 수의 나눗셈 결과를 반환합니다. (a / b)
     * @param a 첫 번째 수
     * @param b 두 번째 수
     * @return 나눗셈 결과
     */
    public static double divide(double a, double b) {
        // main 함수에서 0으로 나누는 경우를 이미 검사했지만, 
        // 함수 자체의 안전성을 위해 추가 검사를 할 수도 있습니다.
        // 여기서는 main의 검사에 의존합니다.
        return a / b;
    }
}

📝 코드 설명

1. main 메서드 역할

  • Scanner 클래스를 이용해 사용자로부터 num1 (첫 번째 값), operator (연산자), **num2 (두 번째 값)**를 차례로 입력받습니다.
  • 입력받은 operator 문자열을 기준으로 switch문을 실행합니다.
  • 각 case (+, -, *, /)에서 해당하는 사칙연산 함수(add, subtract, multiply, divide)를 호출하고, 그 리턴값을 result 변수에 저장합니다.
  • 특히 나눗셈(case "/")에서는 num2가 0인지 검사하여 0으로 나누는 예외 상황을 처리했습니다.
  • 모든 처리가 끝난 후 최종 결과를 출력합니다.

2. 사칙연산 함수 (add, subtract, multiply, divide)

  • 각 연산은 public static double 타입의 메서드로 구현되어 있습니다.
  • 두 개의 double 타입 매개변수를 받아 해당 연산을 수행한 후, 연산 결과를 double 타입으로 리턴합니다.
  • 숫자를 실수(double)로 처리하여 정수뿐만 아니라 소수점 연산도 가능하도록 했습니다.