summaryrefslogtreecommitdiff
path: root/src/Calculator.java
diff options
context:
space:
mode:
authorseth <[email protected]>2023-07-03 23:54:18 -0400
committerseth <[email protected]>2023-07-04 00:05:04 -0400
commit369eb89ea18250bad1b3ef73280b7683ee1c6f93 (patch)
tree8cc728a4db0e6431b5320295e0ddbdd9a6ab1d2b /src/Calculator.java
initial commitHEADmain
Diffstat (limited to 'src/Calculator.java')
-rw-r--r--src/Calculator.java53
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);
+ }
+}