diff --git a/src/main/java/Input.java b/src/main/java/Input.java new file mode 100644 index 0000000..440635f --- /dev/null +++ b/src/main/java/Input.java @@ -0,0 +1,20 @@ +import java.util.Scanner; + +public class Input { + + public static String[] splitInput(){ + System.out.println("계산식 입력 : "); + Scanner sc = new Scanner(System.in); + String input = sc.nextLine(); + + String[] splitString = input.split(" "); + + checkInput(splitString); + + return splitString; + } + + public static void checkInput(String[] splitInput){ + if(splitInput.length % 2 == 0) throw new IllegalArgumentException("잘못된 연산입력입니다."); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..6fb356c --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,9 @@ +public class Main { + public static void main(String[] args){ + calculate(); + } + public static void calculate(){ + StringCalculator stringCalculator = new StringCalculator(); + Output.printOutput(stringCalculator.calculateStr(Input.splitInput())); + } +} diff --git a/src/main/java/Output.java b/src/main/java/Output.java new file mode 100644 index 0000000..eda2ad8 --- /dev/null +++ b/src/main/java/Output.java @@ -0,0 +1,5 @@ +public class Output { + public static void printOutput(int num){ + System.out.println(num); + } +} diff --git a/src/main/java/StringCalculator.java b/src/main/java/StringCalculator.java new file mode 100644 index 0000000..d460f8d --- /dev/null +++ b/src/main/java/StringCalculator.java @@ -0,0 +1,47 @@ +import java.util.*; + +public class StringCalculator { + + public int calculateStr(String[] inputSplit){ + int number = Integer.parseInt(inputSplit[0]); + for(int i = 0; i < inputSplit.length - 2; i += 2){ + number = calculate(number, inputSplit[i+1].charAt(0), Integer.parseInt(inputSplit[i+2])); + } + return number; + } + + public int calculate(int firstFactor, char operator, int secondFactor) { + if (operator == '+') + return add(firstFactor,secondFactor); + if (operator == '-') + return subtract(firstFactor,secondFactor); + if (operator == '*') + return multiply(firstFactor,secondFactor); + if (operator == '/') + return divide(firstFactor,secondFactor); + + throw new RuntimeException("올바르지 않은 연산자"); + } + + + public int add(int num1, int num2){ + return num1 + num2; + } + public int subtract(int num1, int num2){ + return num1 - num2; + } + public int multiply(int num1, int num2){ + return num1 * num2; + } + public int divide(int num1, int num2){ + try { + return num1 / num2; + } catch(ArithmeticException e){ + System.out.println("0 으로 나눌수 없음 : " + num1 + "/" + num2); + } + throw new RuntimeException(); + } + + + +} \ No newline at end of file diff --git a/src/main/java/out/production/main/Input.class b/src/main/java/out/production/main/Input.class new file mode 100644 index 0000000..088548c Binary files /dev/null and b/src/main/java/out/production/main/Input.class differ diff --git a/src/main/java/out/production/main/Main.class b/src/main/java/out/production/main/Main.class new file mode 100644 index 0000000..b6c9919 Binary files /dev/null and b/src/main/java/out/production/main/Main.class differ diff --git a/src/main/java/out/production/main/Output.class b/src/main/java/out/production/main/Output.class new file mode 100644 index 0000000..de85103 Binary files /dev/null and b/src/main/java/out/production/main/Output.class differ diff --git a/src/main/java/out/production/main/StringCalculator.class b/src/main/java/out/production/main/StringCalculator.class new file mode 100644 index 0000000..55e604d Binary files /dev/null and b/src/main/java/out/production/main/StringCalculator.class differ diff --git a/src/main/java/out/production/main/empty.txt b/src/main/java/out/production/main/empty.txt new file mode 100644 index 0000000..e69de29