TheBulgarianWolf

Statement calculator

Mar 29th, 2020
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.84 KB | None | 0 0
  1. package softuni;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.math.BigDecimal;
  7. import java.text.DecimalFormat;
  8. import java.util.Scanner;
  9. import java.util.logging.Level;
  10. import java.util.logging.Logger;
  11.  
  12. /**
  13.  *
  14.  * @author SYSTEM
  15.  */
  16. public class SoftUni {
  17.  
  18.     /**
  19.      * @param args the command line arguments
  20.      */
  21.     public static void main(String[] args) throws IOException {
  22.         Scanner sc = new Scanner(System.in);
  23.         DecimalFormat decFormat = new DecimalFormat("#.##");
  24.         double result = 0;
  25.         int expressionOperator = '+';
  26.         BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
  27.         int symbol = bufferReader.read();
  28.         while(symbol != '='){
  29.        
  30.         if(symbol == '('){
  31.             double innerResult = 0;
  32.             int innerOperator = '+';
  33.             symbol = bufferReader.read();
  34.             while(symbol != ')'){
  35.                 if(0 <= symbol - '0' && symbol - '0' <= 9){
  36.                    switch(innerOperator){
  37.                     case '+':
  38.                       innerResult += symbol - '0';
  39.                       break;
  40.                     case '-':
  41.                       innerResult -= symbol - '0';
  42.                       break;
  43.                     case '/':
  44.                       innerResult /= symbol - '0';
  45.                       break;
  46.                     case '*':
  47.                       innerResult *= symbol - '0';
  48.                       break;  
  49.                     default:
  50.                       System.out.println("something went wrong ://");
  51.                       break;
  52.                    }
  53.                 }
  54.                 else if(symbol == '+' || symbol == '-' || symbol == '/' || symbol == '*'){
  55.                      innerOperator = symbol;
  56.                 }
  57.                 symbol = bufferReader.read();
  58.             }
  59.             result += innerResult;
  60.         }
  61.         else if(0 <= symbol - '0' && symbol - '0' <= 9){
  62.             switch(expressionOperator){
  63.                 case '+':
  64.                     result += symbol - '0';
  65.                     break;
  66.                 case '-':
  67.                     result -= symbol - '0';
  68.                     break;
  69.                 case '/':
  70.                     result /= symbol - '0';
  71.                     break;
  72.                 case '*':
  73.                     result *= symbol - '0';
  74.                     break;  
  75.                 default:
  76.                     System.out.println("something went wrong ://");
  77.                     break;
  78.             }
  79.         }
  80.         else if(symbol == '+' || symbol == '-' || symbol == '/' || symbol == '*'){
  81.             expressionOperator = symbol;
  82.         }
  83.         symbol = bufferReader.read();
  84.        }
  85.        
  86.         System.out.println(decFormat.format(result));
  87.     }
  88.    
  89. }
Add Comment
Please, Sign In to add comment