diff --git a/Calculator/Calculator.java b/Calculator/Calculator.java index 069b48b..21025f9 100644 --- a/Calculator/Calculator.java +++ b/Calculator/Calculator.java @@ -1,45 +1,62 @@ import java.util.Scanner; -public class Calculator { +class Calculator { public static void RunCalculator(String[] args) { Scanner input = new Scanner(System.in); - double num1, num2, result; - char operator; - + System.out.print("Enter the first number: "); - num1 = input.nextDouble(); + String firstInput = input.next(); System.out.print("Enter the second number: "); - num2 = input.nextDouble(); - + String secondInput = input.next(); + System.out.print("Enter an operator (+, -, *, /): "); - operator = input.next().charAt(0); - + char operator = input.next().charAt(0); + + Number num1 = parseNumber(firstInput); + Number num2 = parseNumber(secondInput); + + if (num1 == null || num2 == null) { + System.out.println("Invalid input. Please enter a valid number."); + return; + } + + double result; + switch (operator) { case '+': - result = num1 + num2; - System.out.println(num1 + " + " + num2 + " = " + result); + result = num1.doubleValue() + num2.doubleValue(); break; case '-': - result = num1 - num2; - System.out.println(num1 + " - " + num2 + " = " + result); + result = num1.doubleValue() - num2.doubleValue(); break; case '*': - result = num1 * num2; - System.out.println(num1 + " * " + num2 + " = " + result); + result = num1.doubleValue() * num2.doubleValue(); break; case '/': - if (num2 == 0) { + if (num2.doubleValue() == 0) { System.out.println("Error: Division by zero"); - } - else { - result = num1 / num2; - System.out.println(num1 + " / " + num2 + " = " + result); + return; } + result = num1.doubleValue() / num2.doubleValue(); break; default: System.out.println("Invalid operator"); - break; + return; + } + + System.out.println(num1 + " " + operator + " " + num2 + " = " + result); + } + + public static Number parseNumber(String input) { + try { + if (input.contains(".")) { + return Double.parseDouble(input); + } else { + return Integer.parseInt(input); + } + } catch (NumberFormatException e) { + return null; } } }