From 826b136fa361ba37e1fd94722f35eae2bde359dc Mon Sep 17 00:00:00 2001 From: hansol Date: Thu, 22 Apr 2021 17:51:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=8E=A8=20calculator=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EA=B5=AC=ED=98=84=20not=20w/=20testcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 64 +++++++++++++++++++++++++++++++++++ src/main/java/Input.java | 13 +++++++ src/main/java/Main.java | 28 +++++++++++++++ src/main/java/Output.java | 10 ++++++ src/main/java/main.java | 51 ---------------------------- 5 files changed, 115 insertions(+), 51 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Input.java create mode 100644 src/main/java/Main.java create mode 100644 src/main/java/Output.java delete mode 100644 src/main/java/main.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..1f9b37a --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,64 @@ +import java.util.ArrayList; +import java.util.List; + +public class Calculator { + static private final String ADD_OPERATION = "+"; + static private final String SUBTRACT_OPERATION = "-"; + static private final String MULTIPLY_OPERATION = "*"; + static private final String DIVIDE_OPERATION = "/"; + static private final int NUMBER_INDEX = 0; + static private final int OPERATION_INDEX = 1; + + List numberList = new ArrayList<>(); + List operationList = new ArrayList<>(); + int result = 0; + + public int operation(int firstNumber, int secondNumber, String operation) { + switch (operation) { + case ADD_OPERATION: + result = firstNumber + secondNumber; + break; + case SUBTRACT_OPERATION: + result = firstNumber - secondNumber; + break; + case MULTIPLY_OPERATION: + result = firstNumber * secondNumber; + break; + case DIVIDE_OPERATION: + result = firstNumber / secondNumber; + break; + default: + throw new RuntimeException("부적합한 연산자가 입력되었습니다."); + } + return result; + } + + public int execute(String[] line) { + validation(line); + addNumberList(line); + addOperationList(line); + result = Integer.parseInt(numberList.get(0)); + for (int i = 0; i < operationList.size(); i++) { + result = operation(result, Integer.parseInt(numberList.get(i + 1)), operationList.get(i)); + } + return result; + } + + public void validation(String line[]) { + if (line.length%2 == 0) throw new RuntimeException("올바른 식을 완성해주세요."); + } + + public void addNumberList(String line[]) { + for (int i = NUMBER_INDEX; i < line.length; i += 2) { + numberList.add(line[i]); + } + } + + public void addOperationList(String line[]) { + for (int i = OPERATION_INDEX; i < line.length; i += 2) { + operationList.add(line[i]); + } + } + + +} diff --git a/src/main/java/Input.java b/src/main/java/Input.java new file mode 100644 index 0000000..2e63823 --- /dev/null +++ b/src/main/java/Input.java @@ -0,0 +1,13 @@ +import java.util.Scanner; + +public class Input { + public static final String BLANK = " "; + + public static String getInput() { + Scanner scanner = new Scanner(System.in); + return scanner.nextLine(); + } + public static String[] split(String line) { + return line.split(BLANK); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..766cae0 --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,28 @@ + + +public class Main { + + public static void main(String[] args) { + runCalculate(); + } + + public static void runCalculate() { + Calculator calculator = new Calculator(); + String[] lineForCalculate = getStream(); + try { + Output.printOutput(calculator.execute(lineForCalculate)); + } + catch (Exception e){ + Output.printError(e); + runCalculate(); + } + } + + public static String[] getStream() { + String line = Input.getInput(); + String[] splittedLine = Input.split(line); + return splittedLine; + } + +} + diff --git a/src/main/java/Output.java b/src/main/java/Output.java new file mode 100644 index 0000000..eecdc6a --- /dev/null +++ b/src/main/java/Output.java @@ -0,0 +1,10 @@ +public class Output { + public static void printOutput(int result) { + System.out.println(result); + } + public static void printError(Exception e) { + System.out.println("출력 에러"); + e.printStackTrace(); + } + +} diff --git a/src/main/java/main.java b/src/main/java/main.java deleted file mode 100644 index 80aa024..0000000 --- a/src/main/java/main.java +++ /dev/null @@ -1,51 +0,0 @@ -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; - -public class main { - private static int calculate(int num1, int num2, String op) { - int result = 0; - switch (op) { - case "+" : - result = num1 + num2; - break; - case "-" : - result = num1 - num2; - break; - case "*" : - result = num1 * num2; - break; - case "/" : - result = num1 / num2; - break; - } - return result; - } - - private static void calculator(String[] line) { - List numList = new ArrayList<>(); - List opList = new ArrayList<>(); - - for (int i=0; i Date: Sat, 24 Apr 2021 17:09:14 +0900 Subject: [PATCH 2/2] =?UTF-8?q?:art:=202=EC=B0=A8=20=ED=94=BC=EB=93=9C?= =?UTF-8?q?=EB=B0=B1=20=EB=B0=98=EC=98=81=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 36 +++++++++++++++++------------------ src/main/java/Input.java | 4 ++-- src/main/java/Main.java | 8 ++++---- src/main/java/Output.java | 2 +- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 1f9b37a..b96f26c 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -2,16 +2,16 @@ import java.util.List; public class Calculator { - static private final String ADD_OPERATION = "+"; - static private final String SUBTRACT_OPERATION = "-"; - static private final String MULTIPLY_OPERATION = "*"; - static private final String DIVIDE_OPERATION = "/"; - static private final int NUMBER_INDEX = 0; - static private final int OPERATION_INDEX = 1; + private static final String ADD_OPERATION = "+"; + private static final String SUBTRACT_OPERATION = "-"; + private static final String MULTIPLY_OPERATION = "*"; + private static final String DIVIDE_OPERATION = "/"; + private static final int NUMBER_INDEX = 0; + private static final int OPERATION_INDEX = 1; - List numberList = new ArrayList<>(); - List operationList = new ArrayList<>(); - int result = 0; + private List numberList = new ArrayList<>(); + private List operationList = new ArrayList<>(); + private int result = 0; public int operation(int firstNumber, int secondNumber, String operation) { switch (operation) { @@ -44,21 +44,19 @@ public int execute(String[] line) { return result; } - public void validation(String line[]) { - if (line.length%2 == 0) throw new RuntimeException("올바른 식을 완성해주세요."); + private void validation(String[] formattedInput) { + if (formattedInput.length%2 == 0) throw new RuntimeException("올바른 식을 완성해주세요."); } - public void addNumberList(String line[]) { - for (int i = NUMBER_INDEX; i < line.length; i += 2) { - numberList.add(line[i]); + private void addNumberList(String[] formattedInput) { + for (int i = NUMBER_INDEX; i < formattedInput.length; i += 2) { + numberList.add(formattedInput[i]); } } - public void addOperationList(String line[]) { - for (int i = OPERATION_INDEX; i < line.length; i += 2) { - operationList.add(line[i]); + private void addOperationList(String[] formattedInput) { + for (int i = OPERATION_INDEX; i < formattedInput.length; i += 2) { + operationList.add(formattedInput[i]); } } - - } diff --git a/src/main/java/Input.java b/src/main/java/Input.java index 2e63823..8328e6e 100644 --- a/src/main/java/Input.java +++ b/src/main/java/Input.java @@ -1,9 +1,9 @@ import java.util.Scanner; public class Input { - public static final String BLANK = " "; + private static final String BLANK = " "; - public static String getInput() { + public static String inputExpression() { Scanner scanner = new Scanner(System.in); return scanner.nextLine(); } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 766cae0..5431642 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,18 +8,18 @@ public static void main(String[] args) { public static void runCalculate() { Calculator calculator = new Calculator(); - String[] lineForCalculate = getStream(); + String[] lineForCalculate = getFormattedInput(); try { Output.printOutput(calculator.execute(lineForCalculate)); } catch (Exception e){ - Output.printError(e); + Output.printOutputError(e); runCalculate(); } } - public static String[] getStream() { - String line = Input.getInput(); + public static String[] getFormattedInput() { + String line = Input.inputExpression(); String[] splittedLine = Input.split(line); return splittedLine; } diff --git a/src/main/java/Output.java b/src/main/java/Output.java index eecdc6a..65223af 100644 --- a/src/main/java/Output.java +++ b/src/main/java/Output.java @@ -2,7 +2,7 @@ public class Output { public static void printOutput(int result) { System.out.println(result); } - public static void printError(Exception e) { + public static void printOutputError(Exception e) { System.out.println("출력 에러"); e.printStackTrace(); }