자바 고수분들 도와주세영~

자바 고수분들 도와주세영~

QA

자바 고수분들 도와주세영~

본문


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();
   }
}

첨부 이미지

일단 코드를 짜봤는데

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

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

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

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 123,657 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT