java - 如何在我的代码中将这些方法相互连接,当用户按下 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]
}
解决方案
下面的实现呢:
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
)。
推荐阅读
- windows - 具有 Windows 身份验证的 IIS 和 HttpListener (.NET)
- apache - 迁移到新服务器后,Perl CGI 每日图片脚本未按预期运行
- amazon-web-services - How config letsencrypt ssl for non-www and www domain on the aws elastic beanstalk?
- ggplot2 - How to adjust plot areas in ggplot?
- android - React-Native Execution failed for task ':react-native-svg:verifyReleaseResources'
- javascript - 如何在对 ios 的反应天真中显示从 firebase 检索到的数据
- python - Python 2.7 和 3.6 之间的不同 @patch 行为(使用模拟)
- dart - IOS状态栏点击无法滚动到顶部
- c# - 我怎样才能简化这条长长的条件语句链?
- r - R visNetwork:如何将标签设置为粗体并增加标签周围的边距