자바 고수분들 도와주세영~
본문
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이라고 뜨네요... 뭐가 문제일까요..
그리고 나누기 할 때 예외처리를 없애고 싶어용
위 사진처럼 만들고 싶은데 왜케 어렵죠..ㅋㅋ..
!-->
답변을 작성하시기 전에 로그인 해주세요.