테스트 사이트 - 개발 중인 베타 버전입니다

자바 고수분들 도와주세영~ 채택완료

측칙 4년 전 조회 1,895

</p>

<p>package god;

import java.util.Scanner;

import java.util.StringTokenizer;

public class Operator {

   static int op(String a, String op, String b) throws Exception {

      int i1 = Integer.parseInt(a);

      int i2 = Integer.parseInt(a);

      return op(i1, op, i2);

   }

   static int op(int a, String op, int b) throws Exception {

      switch (op.charAt(0)) {

         case '+':

            return a+b;

         case '-':

            return a-b;

         case '*':

            return a*b;

         case '/':

            if (b==0) {

               System.out.println("Divide by zero");

               return 0;

            }

            return a/b;

         default:

            throw new Exception("Invalid operator");

      }

   }

   public static void main(String[] args) {

      Scanner sc = new Scanner(System.in);

      int i=1;

      while (true) {

         try {

            System.out.print("Enter the expression: ");

            String line = sc.next();

            StringBuffer sb = new StringBuffer();

            sb.append(line);

            int r;

            String[] tokens = null;

            if (i%2==0) {

               tokens = sb.toString().split("[+-*/]");

               r = op(tokens[0], tokens[1], tokens[2]);

            }

            else {

               StringTokenizer st = new StringTokenizer(line, "+-*/");

               tokens = new String[3];

               tokens[0] = st.nextToken();

               tokens[1] = st.nextToken();

               tokens[2] = st.nextToken();

               r = op(tokens[0], tokens[1], tokens[2]);

            }

            System.out.printf("%s %s %s = %d\n", tokens[0], tokens[1], tokens[2]);

            i++;

         }

         catch(Exception e) {

            System.out.println(e.getMessage());

            break;

         }

      }

      sc.close();

   }

}</p>

<p>

첨부 이미지https://kin-phinf.pstatic.net/20211007_41/1633576314672527qW_PNG/1633576314204.PNG?type=w750" width="400" />

일단 코드를 짜봤는데

2+3을 입력하든  뭘 하든 null이라고 뜨네요... 뭐가 문제일까요..

그리고 나누기 할 때 예외처리를 없애고 싶어용 

위 사진처럼 만들고 싶은데 왜케 어렵죠..ㅋㅋ..

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
4년 전

그림은 안나오네요.

 

함수 op 2개가 겹치네요.  

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인