if-else疯狂判断

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Stack;


public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while ((s = bufferedReader.readLine()) != null) {
            if(s.equals("END")){
                break;
            }
            Stack<Integer> ints = new Stack<>();

            Stack<Character> chars = new Stack<>();
            String num = "";
            for(int i = 0; i < s.length(); i++){
                if(s.charAt(i) < '0' || s.charAt(i) > '9'){
                    ints.add(Integer.parseInt(num));
                    num = "";
                    chars.add(s.charAt(i));
                }else{
                    num += s.charAt(i);
                }
            }
            ints.add(Integer.parseInt(num));
            Long cnt = 0L, temp = 1L;
            while (!chars.isEmpty()) {
                char c = chars.pop();
                if(c == '+'){
                    if(temp == 1L){
                        cnt += ints.pop();
                    }else{
                        cnt += temp * ints.pop();
                    }
                    temp = 1L;
                }else if(c == '-'){
                    if(temp == 1L){
                        cnt -= ints.pop();
                    }else{
                        cnt -= temp * ints.pop();
                    }
                    temp = 1L;
                }else if(c == '*'){
                    temp *= ints.pop();
                }
            }
            cnt += temp * ints.pop();
            System.out.println(cnt);

        }
    }
}