Calculator01.java
- 사칙연산(+ - * /)과 나머지(%), 제곱(^) 연산 구현
- 정규표현식을 이용해 0을 포함한 양의 정수만 피연산자로 받도록 함
- /나 %연산 시 0으로 나눌 수 없도록 조건문 작성
- 피연산자와 연산자가 잘못 작성되어도 error가 뜨거나 계속 연산을 진행하지 않고, 다시 반복문으로 돌아가도록 구현
- exit를 입력시 반복이 끝나도록 함
Calculator02.java
App02.java
- getter, setter로 접근을 제어함
- 연산 로그(피연산자(2), 연산자, 연산결과)를 저장하는 컬렉션 구현(이차원 ArrayList)
- 연산이 정상적으로 끝나면 switch를 이용해 원하는 기능을 수행하도록 함
- 로그 전체 삭제 메서드 추가
- 입력받은 번호의 로그를 삭제하는 메서드 추가, 숫자가 아니거나 로그 내의 번호와 일치하지 않는 경우 다시 반복문으로 돌아감
- 로그를 더하고, 수행한 연산을 모두 보여주는 메서드 추가
ArithmeticCalculator.java
App03.java
- 연산자를 enum 타입으로 변경
- 피연산자를 실수와 음수도 받을 수 있도록 정규표현식 변경, 타입 제네릭으로 변경
- 제네릭을 사용했으므로, 연산 메서드의 결과 값이 double로 나올 때, int로 나올 때를 다르게 조건을 부여함
- 제곱은 실수를 사용할 수 없다는 조건문 추가
- 자신이 입력한 값보다 큰 값을 도출한 로그만을 검색하는 case search 추가
- 위의 기능을 수행할 메서드를 람다와 stream을 이용해 구현
- 정수의 크기가 클 때 예외 처리 입력