diff options
Diffstat (limited to 'src/Calculator.java')
| -rw-r--r-- | src/Calculator.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/Calculator.java b/src/Calculator.java new file mode 100644 index 0000000..6f2cb94 --- /dev/null +++ b/src/Calculator.java @@ -0,0 +1,53 @@ +import java.util.Scanner; + +class InvalidOperatorException extends Exception { + public InvalidOperatorException(String errorMessage) { + super(errorMessage); + } +} + +public class Calculator { + private static float calculate(String operator, float number1, float number2) throws InvalidOperatorException { + switch(operator) { + case "+": + return number1 + number2; + case "-": + return number1 - number2; + case "/": + return number1 / number2; + case "*": + return number1 * number2; + default: + throw new InvalidOperatorException("invalid operator used!"); + } + } + + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + + float number1, number2, result; + String operator; + + try { + System.out.print("enter a number: " ); + number1 = scan.nextFloat(); + System.out.print("enter an operator: "); + scan.nextLine(); + operator = scan.nextLine(); + System.out.print("enter another number: "); + number2 = scan.nextFloat(); + } catch (Exception e) { + System.out.println("couldn't get your input!"); + return; + } + + try { + result = calculate(operator, number1, number2); + } catch (InvalidOperatorException e) { + System.out.println(e.getMessage()); + return; + } + + System.out.println(result); + } +} |
