首页 > 解决方案 > 如何在我的代码中将这些方法相互连接,当用户按下 2 时,它将不得不去吃零食,而是运行代码来吃饭 java

问题描述

 import java.util.Scanner;
public class MP3
{

//这是我需要将每个方法连接到每个方法的主要代码。//因此,如果用户按 2,它将去吃零食,但即使您现在按 2,它也只会继续代码和去吃饭。//我怎样才能让用户可以选择他/她喜欢通过哪个菜单?

public static void main(String[] args)
      {
        int Options_Snacks;
        int Options_Snacks2;
        int Options_Snacks3;
        int Options_Drinks;
        int Options_Drinks2;
        int Options_Drinks3;
        int diff,prod ;
        int yes = 1;
        int no = 2;
        int End;
        
        
        do {
        mainmenu();
        mainmeals(); 
        mainsnacks();
       
        Scanner myInput = new Scanner(System.in);
        System.out.println("Would you like to order more: press " + yes +" for yes and " + no +" for no");
        End = myInput.nextInt();
        
        } while(End == 1);
      } 

// 此代码运行顺利,但当用户按下数字时其他菜单不运行,而是运行 while 循环中的所有代码。

 public static void mainmenu()
        {
    
        int Orders;
        int Meals = 1;
        int Snacks = 2;
        int Drinks = 3;
        int EXIT = 4;
    
        Scanner myInput = new Scanner(System.in);
        System.out.println("=======[STRESSFOOD]=====");
        System.out.println("---------[ Menu ]-------");
        System.out.println("1----------Meals--------");
        System.out.println("2---------Snacks--------");
        System.out.println("3---------Drinks--------");
        System.out.println("4--------[ EXIT ]-------");
        Orders = myInput.nextInt();
    
       
       }
    [here's the code I didn't get all in the picture][1]
    }

标签: javamethods

解决方案


下面的实现呢:

public static void main(String[] args) {
        openMenu();
}

使用菜单功能中的 while 循环:

private static void openMenu() {
        Scanner scan = new Scanner(System.in);

        do {

            System.out.println("1) Meals");
            System.out.println("2) Snacks");
            System.out.println("3) Drinks");
            System.out.println("4) Exit");
            System.out.print("Your choice ? ");

            switch (scan.nextInt()) {
                case 1:
                    openMealsMenu();
                    break;
                case 2:
                    openSnacksMenu();
                    break;
                case 3:
                    openDrinksMenu();
                    break;
                case 4:
                    scan.close();
                    return;
                default:
                    System.out.println("This is not a valid choice");
            }
        } while (true);

    }

请注意,您应该只在您的应用程序中使用一台扫描仪。例如,如果您需要在 openMealsMenu() 中使用扫描仪,请将其作为方法的参数传递,或者只需在 MP3 类中声明一个静态扫描仪,因为您的方法在同一个类中。

顺便说一句,按照惯例,变量应该以小写字母开头,并且不带 a _(即Options_Drinks3变为optionsDrinks3)。


推荐阅读