为了账号安全,请及时绑定邮箱和手机立即绑定

输入菜单屏幕方法始终返回 0

输入菜单屏幕方法始终返回 0

慕侠2389804 2022-11-02 16:58:56
我被分配创建一个菜单驱动程序,其中包含一个显示菜单屏幕/获取用户输入的功能,但displaymenu()始终且仅返回 0 而不是新输入的数字。我对编程很陌生,我用谷歌搜索了我能想到的所有东西,但我很困惑。import java.util.Scanner;public class menuDriven{   public static void main(String[] args)   {      int menuSelection=0;      double inches, centimeters, feet, meters, miles, kilometers;      Scanner keyboard = new Scanner(System.in);      displayMenu(keyboard, menuSelection);      switch(menuSelection)      {      case 1:         inchesToCentimeters(keyboard);         break;      case 2:         feetToMeters(keyboard);         break;      case 3:         milesToKilometers(keyboard);         break;      }   } // end main   public static int displayMenu(Scanner keyboard,  int menuSelection)    {   System.out.println("1. Convert inches to centimeters");   System.out.println("2. Convert feet to meters");   System.out.println("3. Convert miles to kilometers");   System.out.println();   System.out.println("Enter your selection");   menuSelection = keyboard.nextInt();    while (menuSelection < 1 || menuSelection > 3)      {         System.out.println("Please enter 1, 2, or 3.");         menuSelection = keyboard.nextInt();      }   return menuSelection;   }   public static void inchesToCentimeters(Scanner keyboard)   {      double inches, centimeters;      System.out.print("Enter the number of inches: ");      inches = keyboard.nextDouble();      centimeters = inches * 2.54;      System.out.println("That is equal to " + centimeters + " centimeters.");   }   public static void feetToMeters(Scanner keyboard)   {      double feet, meters;      System.out.println("Enter the number of feet: ");      feet = keyboard.nextDouble();      meters = feet * 0.3048;      System.out.println("That is equal to " + meters + " meters.");   }程序应该接受用户输入 1、2 或 3,然后将该数字带到开关并显示代码。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

Java 按值传递原始参数,因此尽管您在 in 中操作menuSelection参数displayMenu,但menuSelectioninmain保持与调用之前相同displayMenu。


您可以将结果分配displayMenu给menuSelection:


menuSelection = displayMenu(keyboard, menuSelection);

您还可以删除menuSelection作为参数的传递并在内部声明它displayMenu,例如:


public static int displayMenu(Scanner keyboard) {

    int menuSelection=0;


    //...

}


查看完整回答
反对 回复 2022-11-02
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

尝试这个:


import java.util.Scanner;


public class menuDriven{

 public static void main(String[] args)

 {

    Scanner keyboard = new Scanner(System.in);


    displayMenu(keyboard);


} // end main


private static void displayMenu(Scanner keyboard)

{


    System.out.println("1. Convert inches to centimeters");

    System.out.println("2. Convert feet to meters");

    System.out.println("3. Convert miles to kilometers");

    System.out.println();


    System.out.println("Enter your selection");

    int menuSelection = keyboard.nextInt();

    while (menuSelection < 1 || menuSelection > 3)

    {

        System.out.println("Please enter 1, 2, or 3.");

        menuSelection = keyboard.nextInt();

    }

    switch(menuSelection)

    {

        case 1:

            inchesToCentimeters(keyboard);

            break;


        case 2:

            feetToMeters(keyboard);

            break;


        case 3:

            milesToKilometers(keyboard);

            break;

    }

    /* return menuSelection; */

}


private static void inchesToCentimeters(Scanner keyboard)

{

    double inches, centimeters;

    System.out.print("Enter the number of inches: ");

    inches = keyboard.nextDouble();

    centimeters = inches * 2.54;

    System.out.println("That is equal to " + centimeters + " centimeters.");


}


private static void feetToMeters(Scanner keyboard)

{

    double feet, meters;

    System.out.println("Enter the number of feet: ");

    feet = keyboard.nextDouble();

    meters = feet * 0.3048;

    System.out.println("That is equal to " + meters + " meters.");

}


private static void milesToKilometers(Scanner keyboard)

{

    double miles, kilometers;

    System.out.println("Enter the number of miles: ");

    miles = keyboard.nextDouble();

    kilometers = miles * 1.609;

    System.out.println("That is equal to " + kilometers + " kilometers.");

 }

} // end class



查看完整回答
反对 回复 2022-11-02
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信