Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions src/main/java/Cacluate.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
public class Cacluate {

private static int result;

public static int calculate(int first_num, String operator, int second_num){
public int calculate(int first_num, String operator, int second_num){
//연산부
if (operator == "+") {
return add(first_num,second_num);
Expand All @@ -19,16 +17,16 @@ public static int calculate(int first_num, String operator, int second_num){
throw new RuntimeException("올바르지 않는 연산자입니다.");
}

private static int add(int a,int b){
private int add(int a,int b){
return a+b;
}
private static int sub(int a,int b){
private int sub(int a,int b){
return a-b;
}
private static int mul(int a,int b){
private int mul(int a,int b){
return a*b;
}
private static int div(int a,int b){
private int div(int a,int b){
return a/b;
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/Input.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import java.util.Scanner;

public class Input {
class Input {

public static String[] input(){
public String[] input(){
Scanner scan = new Scanner(System.in);
String value = scan.nextLine();
String[] values = value.split(" ");
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
public class Main {
public static void main(String[] args) {

String[] values = Input.input();
int result = Preprocessing.classify(values);
Input i1 = new Input();
String[] values = i1.input();

Preprocessing pre = new Preprocessing();
int result = pre.classify(values);
//결과값 출력
System.out.println(result);
}
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/Preprocessing.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
public class Preprocessing {
class Preprocessing {

private static int first_num = 0;
private static int second_num = 0;
private static int return_num = 0;
public static String operator = "";

//숫자 or 연산자 or 에러(숫자x, 연산자x)?
private static boolean isNumber(String a) {
private boolean isNumber(String a) {
//잠결에 해서 어떻게 했는지 설명못하겠어 무의식속에서 코드가 완성됐어
boolean isNum;
isNum = true;
Expand All @@ -23,7 +23,7 @@ private static boolean isNumber(String a) {
}

//연산자 부여
public static void setOper(String oper) {
public void setOper(String oper) {
if (oper.equals("+")) {
operator = "+";
}
Expand All @@ -40,17 +40,18 @@ public static void setOper(String oper) {
}

//숫자 부여
public static void setNumber(int idx, String num) {
public void setNumber(int idx, String num) {
if (idx == 0) { //제일 처음일때만
return_num = Integer.parseInt(num);
} else { // 두번째 숫자 들어올때
first_num = return_num;
second_num = Integer.parseInt(num);
return_num = Cacluate.calculate(first_num, operator, second_num);
Cacluate cal = new Cacluate();
return_num = cal.calculate(first_num, operator, second_num);
}
}

public static int classify(String[] values) {
public int classify(String[] values) {
//잘못된 연산식인지 먼저 확인.
wrongMath(values);

Expand All @@ -65,7 +66,7 @@ public static int classify(String[] values) {
return return_num;
}//end classify()

private static void wrongMath(String[] values) {
private void wrongMath(String[] values) {
if (values.length % 2 == 0)
throw new IllegalArgumentException("잘못된 연산입니다. 다시 입력하세요.");
}
Expand Down
14 changes: 6 additions & 8 deletions src/test/java/test.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public class test {
public void successTest() throws Exception {
String value = "5 + 3 * 4 / 2";
String[] values = value.split(" ");

assertThat(Preprocessing.classify(values)).isEqualTo(16);
Preprocessing pretest = new Preprocessing();
assertThat(pretest.classify(values)).isEqualTo(16);
}


Expand All @@ -26,9 +26,9 @@ public void validationTest() {
String errorValue = "2 + 3 * 4 / ";

String[] errorValues = errorValue.split(" ");

Preprocessing pretest = new Preprocessing();
assertThatThrownBy(() -> {
Preprocessing.classify(errorValues);
pretest.classify(errorValues);
}).isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("잘못된 연산입니다. 다시 입력하세요.");

Expand All @@ -38,16 +38,14 @@ public void validationTest() {
@Test
@DisplayName("에러_잘못된_연산자")
public void wrong_input_value() {

String errorValue = "2 + 3 _ 4";
String[] errorValues = errorValue.split(" ");
Preprocessing pretest = new Preprocessing();
assertThatThrownBy(() -> {
Preprocessing.classify(errorValues);
pretest.classify(errorValues);
}).isInstanceOf(RuntimeException.class)
.hasMessageContaining("올바르지 않는 연산자입니다.");
}




}