24.07.25

윤지현·2024년 7월 25일

TIL

목록 보기
24/75
  • 개인과제 문제를 보면
    나눗셈에서 분모에 0이 들어오거나 연산자 기호가 잘 못 들어온 경우 적합한 Exception 클래스를 생성하여 throw 합니다. (매개변수로 해당 오류 내용을 전달합니다.) 라고 나와있었다.....
public class Calculator {
    /* 연산 결과를 저장하는 컬렉션 타입 필드 선언 및 생성 */

    public 반환타입 calculate(...매개변수) {
        /* 위 요구사항에 맞게 구현 */
        /* return 연산 결과 */
    }
}

일단 예외처리를 이렇게 하기로 결정했다.

- App.java
	- 첫 번째 숫자가 양의 정수인지 확인
    - 두 번째 숫자가 양의 정수인지 확인
- Calculator.java
	- 나누기(/)를 할 때 분모가 0이 아닌 지 확인
    - 잘못된 연산 입력했는지 확인

일단 예외처리를 할 클래스를 만들었다.

public class BadException extends Exception {
    public BadException(String type) {
        super("잘못 입력되었습니다.! " + type + "를 다시 입력해주세요.");
    }
}

type이라는 문자열의 매개변수를 받을 수 있게 하였다.
그리고 사칙연산기능을 수행하는 클래스 Calculator에서 사칙연산을 하고, 예외처리를 하는 것 까지 해서 만들었다.
package calculator;

import java.util.*;

public class Calculator {
    /* 연산 결과를 저장하는 컬렉션 타입 필드 선언 및 생성 */
    List<Double> results = new ArrayList<>();

    public Double calculate(int num1, int num2, char op) throws BadException {
        double result = 0;
        switch (op) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 == 0) {
                    throw new BadException("분모가 0이 아닌 양의 정수");
                } else {
                    result = num1 / num2;
                }
                break;
            default:
                throw new BadException("사칙연산자[+, -, *, /]");
        }
        results.add(result);
        return result;
    }
}

한 번 실행을 해보자!

연산기호를 잘못입력했을 때 내가 생성한 클래스가 잘 나온 것을 확인할 수 있었다.

profile
첫 시작

0개의 댓글