0

我试图制作一个程序让用户选择一个星球,它会显示关于那个星球的特征。

只要他们确实选择了“5”来结束程序,并且还验证了选择是 1-5,我就想结合将其循环回菜单的功能。

但是我有一些错误我不知道如何摆脱。

import java.util.Scanner;

public class AstronomyHelper
{

   public static void main(String[] args)
   {

   //Declare a variable to hold the user's menu selection
   int menuSelection;

   //Declare a variable to hold the different planets
   string Mercury, Venus, Earth, Mars;


   //Create a scanner object for the keyboard input
   Scanner keyboard = new Scanner(System.in);


      do 
      {
         //Display the menu and get the user's selection
         displayMenu(menuSelection);


         //Display the information for the user's selection
         switch(menuSelection)
         {

            case 1: 
                  System.out.println("\t\t\t\t\t\t\t\t\t\t MERCURY");
                  System.out.println("_________________________________________________________");

                  System.out.println("Average Distance from the sun:  57.9 million kilomenters");
                  System.out.println("Mass:  3.31 x 10^23 kg");
                  System.out.println("Surface Temperature:  -173 to 430 degrees Celsius");

                  break;


           case 2: 
                  System.out.println("\t\t\t\t\t\t\t\t\t\t VENUS");
                  System.out.println("_________________________________________________________");

                  System.out.println("Average Distance from the sun:  108.2 million kilometers");
                  System.out.println("Mass:  4.87 x 10^24 kg");
                  System.out.println("Surface Temperature:  472 degrees Celsius");

                  break;

           case 3: 
                  System.out.println("\t\t\t\t\t\t\t\t\t\t EARTH");
                  System.out.println("_________________________________________________________");

                  System.out.println("Average Distance from the sun:  149.6 million kilometers");
                  System.out.println("Mass:  5.967 x 10^24 kg");
                  System.out.println("Surface Temperature:  -50 to 50 degrees Celsius");

                  break;

           case 4: 
                  System.out.println("\t\t\t\t\t\t\t\t\t\t MARS");
                  System.out.println("_________________________________________________________");

                  System.out.println("Average Distance from the sun:  227.9 million kiometers");
                  System.out.println("Mass:  0.6424 x 10^24 kg");
                  System.out.println("Surface Temperature:  -140 to 20 degrees Celsius");

                  break;

         }

       while(menuSelection !=5)
       }       



         //Call the displayMenu method to display the menu options and get the user's selection
         public displayMenu()
         {
         System.out.println("Please select a planet to view details about it's: ");
         System.out.println("average distance from the sun, mass, and surface temperature.");
         System.out.println("-------------------------------------------------------------");
         System.out.println("1. Mercury");
         System.out.println("2. Venus");
         System.out.println("3. Earth");
         System.out.println("4. Mars");
         System.out.println("5. EXIT the program");
         System.out.println("Enter your selection:  ");

         menuSelection = keyboard.nextInt();


            //Validate the menu selection
            while (menuSelection < 1 || menuSelection > 5)
            {
               System.out.print("This is an invalid selection.");
               System.out.print("Enter a selection from 1-5: ");

               menuSelection = keyboard.nextInt();
            }
          }
}
4

2 回答 2

1
  public displayMenu() // there must be a return type and int parameter

如果您在 displayMenu() 方法中访问 Scanner 对象,则必须在 main() 之外声明它们。

而且您没有正确关闭 do-while 循环。

于 2013-11-14T19:06:37.580 回答
0

声明的键盘和菜单选择。正确关闭您的 do-while 并将 return-statement 添加到您的 displayMenu() 方法。创建了一个 printPlanet(..) 方法,这样您就不需要复制/粘贴所有相同的数据。工作示例:

import java.util.Scanner;

public class AstronomyHelper {

public static void main(String[] args) {
    int menuSelection = 0;
    do {
        // Display the menu and get the user's selection
        menuSelection = displayMenu();
        // Display the information for the user's selection
        switch (menuSelection) {
        case 1:
            printPlanet("MERCURY", "57.9", "3.31 x 10^23", "-173 to 430");
            break;

        case 2:
            printPlanet("VENUS", "108.2", "4.87 x 10^24", "472");
            break;

        case 3:
            printPlanet("EARTH", "149.6", "5.967 x 10^24", "-50 to 50");
            break;

        case 4:
            printPlanet("MARS", "227.9", "0.6424 x 10^24", "-140 to 20");
            break;
        }
    }
    while (menuSelection != 5);
} // Call the displayMenu method to display the menu options and get the

// user's selection
public static int displayMenu() {
    System.out.println("Please select a planet to view details about it's: ");
    System.out.println("average distance from the sun, mass, and surface temperature.");
    System.out.println("_________________________________________________________");
    System.out.println("1. Mercury");
    System.out.println("2. Venus");
    System.out.println("3. Earth");
    System.out.println("4. Mars");
    System.out.println("5. EXIT the program");
    System.out.println("Enter your selection:  ");

    Scanner keyboard = new Scanner(System.in);
    int menuSelection = keyboard.nextInt();

    // Validate the menu selection
    while (menuSelection < 1 || menuSelection > 5) {
        System.out.print("This is an invalid selection.");
        System.out.print("Enter a selection from 1-5: ");

        menuSelection = keyboard.nextInt();
    }
    return menuSelection;
}
public static void printPlanet(String planet, String distanceToSun, String mass, String degrees) {
    System.out.println("\t\t\t " + planet);
    System.out.println("_________________________________________________________");
    System.out.println("Average Distance from the sun: " + distanceToSun + " million kiometers");
    System.out.println("Mass: " + mass + " kg");
    System.out.println("Surface Temperature: " + degrees + " degrees Celsius");
    System.out.println("_________________________________________________________");
}
}
于 2013-11-14T19:13:57.810 回答