File tree Expand file tree Collapse file tree 2 files changed +54
-1
lines changed
calculator/src/main/java/com/wonu606/calculator Expand file tree Collapse file tree 2 files changed +54
-1
lines changed Original file line number Diff line number Diff line change 1+ package com .wonu606 .calculator .model ;
2+
3+ import com .wonu606 .calculator .util .CalculatorMessage ;
4+
5+ public enum Operator {
6+ ADD ("+" , 2 ){
7+ @ Override
8+ public double apply (double a , double b ) {
9+ return a + b ;
10+ }
11+ },
12+ SUBTRACT ("-" , 2 ) {
13+ @ Override
14+ public double apply (double a , double b ) {
15+ return a - b ;
16+ }
17+ },
18+ MULTIPLY ("*" , 1 ) {
19+ @ Override
20+ public double apply (double a , double b ) {
21+ return a * b ;
22+ }
23+ },
24+ DIVIDE ("/" , 1 ) {
25+ @ Override
26+ public double apply (double a , double b ) {
27+ if (b == 0 ) {
28+ throw new ArithmeticException (CalculatorMessage .NOT_DIVISIBLE_BY_ZERO .message );
29+ }
30+ return a / b ;
31+ }
32+ };
33+
34+ public final String symbol ;
35+ public final int precedence ;
36+
37+ Operator (String symbol , int precedence ) {
38+ this .symbol = symbol ;
39+ this .precedence = precedence ;
40+ }
41+
42+ public abstract double apply (double a , double b );
43+
44+ public static Operator get (String symbol ) {
45+ for (Operator operator : values ()) {
46+ if (operator .symbol .equals (symbol )) {
47+ return operator ;
48+ }
49+ }
50+ return null ;
51+ }
52+ }
Original file line number Diff line number Diff line change 22
33public enum CalculatorMessage {
44 INVALID_ORDER ("잘못된 순번입니다." ),
5- INVALID_INPUT ("잘못된 입력입니다." );
5+ INVALID_INPUT ("잘못된 입력입니다." ),
6+ NOT_DIVISIBLE_BY_ZERO ("0으로 나눌 수 없습니다." );
67
78 public final String message ;
89
You can’t perform that action at this time.
0 commit comments