

import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int result = 0;
boolean flag = true;
while (true) {
String s = br.readLine();
if (s.equals("=")) {
bw.write(Integer.toString(result));
bw.newLine();
bw.flush();
break;
}
if (flag) {
result = Integer.parseInt(s);
flag = false;
} else {
if (s.equals("+")) {
result += Integer.parseInt(br.readLine());
} else if (s.equals("-")) {
result -= Integer.parseInt(br.readLine());
} else if (s.equals("*")) {
result *= Integer.parseInt(br.readLine());
} else if (s.equals("/")) {
result /= Integer.parseInt(br.readLine());
}
}
}
}
}
Scanner 가 쓰기가 편하지만, 한번에 모든 데이터를 입력받아 처리하기위해 BufferedReader / BufferedWriter 사용.
그리고 입출력 동작이 예외를 발생시킬 가능성이 있기 때문에 메서드에 throws IOException 추가.
100 / 3 = 33 이 되야하고, 10의 8승까지 숫자를 정의했기 때문에 int 자료형 사용
계산 결과값을 저장할 변수 result와
첫번째 숫자 입력여부를 나타내는 boolean 형 flag 생성. 처음에는 숫자가 입력되기 때문에 true로 초기화.
부호도 같이 입력받는 형태이기 때문에 String 타입으로 입력을 받고, while 문으로 무한루프를 돌며 반복적으로 입력을 받음
만약 입력값중 = 부호가 들어오면 result 변수에 저장된 결과값을 String 형변환 하여 출력하고 반복문 탈출.
flag 가 true 일때, 즉, 첫번째 입력인 경우에 문자열 s를 정수로 변환시켜 result에 저장하고 flag를 false로 변경
덧셈, 뺄셈, 곱셈, 나눗셈을 입력받으면 각 조건에 맞는 계산을 하여 result 변수에 저장