Question: Hello, I need help with this program in Java, the program is a scientific calculator where you select the option you want from a menu

Hello, I need help with this program in Java, the program is a scientific calculator where you select the option you want from a menu on the console. I got the program to give me the answers that I needed with a switch statement. But, I need that switch statement to loop and none of the ways that I have tried to make it loop have worked. can anyone help me? this is my code:

import java.util.Scanner; import java.lang.Math; import static java.lang.Math.log10; public class Main { public static void main(String[] args) { int opt = 0; int counter = 0; double firstOperand = 0; double secondOperand = 0; double sumOfcalculations = 0; double result = 0; Scanner sc = new Scanner(System.in); System.out.println("Current Result: " + sumOfcalculations); System.out.println(" "); System.out.println("Calculator Menu"); System.out.println("---------------"); System.out.println("0. Exit Program"); System.out.println("1. Addition"); System.out.println("2. Subtraction"); System.out.println("3. Multiplication"); System.out.println("4. Division"); System.out.println("5. Exponentiation"); System.out.println("6. Logarithm"); System.out.println("7. Display Average"); System.out.println(" "); System.out.print("Enter Menu Selection: "); opt = sc.nextInt(); switch (opt){ case 0: return; case 1: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = firstOperand + secondOperand; ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 2: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = firstOperand - secondOperand; ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 3: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = firstOperand * secondOperand; ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 4: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = firstOperand / secondOperand; ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 5: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = Math.pow(firstOperand, secondOperand); ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 6: System.out.print("Enter first operand: "); // Ask for first operand firstOperand = sc.nextDouble(); // Gets first double input System.out.print("Enter second operand: "); // Ask for 2nd operand secondOperand = sc.nextDouble(); // gets 2nd operand result = (log10(secondOperand)) / (log10(firstOperand)); ++counter; sumOfcalculations = sumOfcalculations + result; System.out.print("Result: " + result + "Counter: " + counter); case 7: System.out.println("Sum of Calculations: " + sumOfcalculations); System.out.println("Number of Calculations: " + counter); System.out.println("Average of calculations: " + sumOfcalculations/counter); default: System.out.println("Error: Invalid selection!"); break; } } } 

I know that I made the swtich statement a little bit too complicated but I'm new in this and it was the only way I made it work.

thanks in advance!

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!