title: Java - menu loop and math calculations
body: <p>I'm working on a program that will give the user a menu, allow them to select an option, then ask for different numbers to do a calculation based on their menu choice. I've started with the basic outline of the program, but I need help getting loops implemented and working.</p>
  
  <p>Here is my code so far:</p>
  
  <pre><code>import java.util.Scanner;
  
  public class LB04Alexander {
  
  public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      System.out.println("This program will perform several types of calculations.");
      System.out.println();
      System.out.println("-MENU-");
      System.out.println("Select from the following menu options:");
      System.out.println("1 - Compute integer powers of a number");
      System.out.println("2 - Compute a factorial");
      System.out.println("3 - Compute a square root");
      System.out.println("4 - Compute a cube root");
      System.out.println("5 - Compute an exponential");
      System.out.println("6 - Compute the sine of an angle");
      System.out.println("7 - Compute the cosine of an angle");
      System.out.println("8 - Convert a positive integer to binary");
      System.out.println("9 - Exit");
      System.out.println("Please enter the number corresponding to your choice:");
  
      int menuChoice = input.nextInt();
      while (menuChoice &gt;= 1 &amp;&amp; menuChoice &lt;= 9); {
          switch (menuChoice) {
          case 1:
              System.out.println("You have chosen to compute integer powers of a number.");
              System.out.println("Please enter any number for the base:");
              double base1 = input.nextDouble();
              System.out.println("Now, enter a non-negative integer for the exponent:");
              int exponent1 = input.nextInt();
              if (exponent1 &lt; 0)
                  System.out.println("Error: exponent is negitive.");
              else
                  System.out.println(base1 + "^" + exponent1 + " = " + "");
              break;
          case 2:
              System.out.println("You have chosen to compute a factorial (n!) of a non-negative integer.");
              System.out.println("Please enter a non-negitive integer for n:");
              long fact = input.nextLong();
              int result = 1; 
              if (fact &lt; 0) 
                  System.out.println("Error: integer is negitive.");
              else if (fact &gt;= 127)
                  System.out.println("Error: Answer too large to calculate");
              else
                  for (int i = 1; i &lt;= fact; i++) {
                      result = result * i;
                  }
              System.out.println(fact + "! = " + result );
              break;
          case 3:
              System.out.println("You have chosen to compute a square root.");
              break;
          case 4:
              System.out.println("You have chosen to compute a cube root.");
              break;
          case 5:
              System.out.println("You have chosen to compute an exponential.");   
              break;
          case 6:
              System.out.println("You have chosen to compute the sine of an angle."); 
              break;
          case 7:
              System.out.println("You have chosen to compute the cosine of an angle.");   
              break;
          case 8:
              System.out.println("You have chosen to convert a positive integer to binary");  
              break;
          case 9:
              System.out.println("You have chosen to exit");
              System.out.println("Program LB04Alexander is now terminating...");
              input.close();
              System.out.println("The program has ended. Goodbye.");
              break;
          default:
              System.out.println("Invalid menu choice, please try again.");
              break;
  
          } }
  
  
  }
  }
  </code></pre>
  
  <p>The first problem I'm having is getting the menu to loop the right way. it either doesn't work, or loops forever.</p>