import java.util.Scanner; public class Calculator { public double result = 0.0; public double input = 0; public String operator; public Calculator(double result, double input, String operator) { this.result = result; this.input = input; this.operator = operator; } public double add(double result, double input) { return result + input; } public double subtract(double result, double input) { return result - input; } public double divide(double result, double input) { return result/input; } public double multiply(double result, double input) { return result * input; } public void doCalculations() { Calculator calc = new Calculator(0, 0, "None yet"); boolean done = false; Scanner keyboard = new Scanner(System.in); System.out.println("Calculator is on. " + "Enter a space between the operator and the second number."); while (done == false) { System.out.println("Result is " + result); operator = keyboard.next(); input = keyboard.nextDouble(); try { if (operator.equals("+")) { result = calc.add(result, input); System.out.println("Result + " + input + " = " + result); System.out.println("New result = " + result); } else if(operator.equals("-")) { result = calc.subtract(result, input); System.out.println("Result - " + input + " = " + result); System.out.println("New result = " + result); } else if(operator.equals("/")) { result = calc.divide(result, input); System.out.println("Result / " + input + " = " + result); System.out.println("New result = " + result); } else if(operator.equals("*")) { result = calc.multiply(result, input); System.out.println("Result * " + input + " = " + result); System.out.println("New result = " + result); } else if(operator.equalsIgnoreCase("r")) { System.out.println("Final result = " + result); System.exit(0); } else throw new UnknownOperatorException(operator); } catch(UnknownOperatorException e) { System.out.println(operator + " is not a valid operator." ); calc.doAgain(result); }} } public void doAgain(double result) { Scanner keyboard = new Scanner(System.in); System.out.println("Please re-enter your last line of input. " + "Remember the space between operator and number."); operator = keyboard.next(); input = keyboard.nextDouble(); } }