gpt4 book ai didi

Java循环米转换程序

转载 作者:行者123 更新时间:2023-11-30 05:44:52 24 4
gpt4 key购买 nike

我无法弄清楚如何让程序循环浏览转换菜单,然后从选择“4 Return”返回主菜单,如示例所示。

<小时/>

程序输出的示例:

主菜单

  1. 输入距离

  2. 退出程序

Please enter your choice: 1  

Enter a distance in meters: 500  

转换菜单

  1. 转换为公里

  2. 转换为英寸

  3. 转换为英尺

  4. 返回

Enter your choice: 1

500 meters is 0.5 kilometers

转换菜单

  1. 转换为公里

  2. 转换为英寸

  3. 转换为英尺

  4. 返回

Enter your choice: 3

500 meters is 1640.5 feet  

转换菜单

  1. 转换为公里

  2. 转换为英寸

  3. 转换为英尺

  4. 返回

Enter your choice: 4  

主菜单

  1. 输入距离

  2. 退出程序

Please enter your choice: 2  

Good Bye!

<小时/>

当该程序不包含主菜单和循环返回时,我找到了多种解决方案,但我似乎找不到任何相关内容。

这是我所拥有的:

public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int choice;
int option;
double meters = 0;
conversionControl();
choice = keyboard.nextInt();
switch (choice) {
case 1:
System.out.println("\nEnter a Distance in Meters:");
meters = keyboard.nextDouble();
break;
case 2:
quitProgram();
break;
default:
showError("Please Enter a Valid Option");
conversionControl();
option = keyboard.nextInt();
if (option == 1) {
System.out.println("\nEnter a Distance in Meters:");
meters = keyboard.nextDouble();
}
else if ( option == 2) {
quitProgram();
}
break;
}
do{
menu();
choice = keyboard.nextInt();
switch (choice) {
case 1:
showKilometers(meters);
break;
case 2:
showInches(meters);
break;
case 3:
showFeet(meters);
break;
case 4:
conversionControl();
option = keyboard.nextInt();
if (option == 1) {
System.out.println("\nEnter a Distance in Meters:");
meters = keyboard.nextDouble();
}
else if ( option == 2) {
quitProgram();
}
break;
default:
showError("Please Enter a Valid Option");
menu();
choice = keyboard.nextInt();
break;
}
} while(choice != 0); {
}
}

我想我确实找到了自己的出路,但我一直认为这不是正确的方法或者有更简单的方法。另外,在测试某些输入时会出现一些错误(主要是 showError 方法调用将输出不正确的菜单,或者在多次错误输入后关闭程序)。

任何帮助/建设性批评将不胜感激。我对编码有点陌生(了解 HTML),对这个网站也不太熟悉。

谢谢!鲍勃

最佳答案

因为它看起来像一个练习,所以我不会给你完整的代码,而是给你一个伪代码来帮助你理解这里的策略。

为了澄清,我将您的第一个菜单命名为 mainMenu,将第二个菜单命名为 convMenu

您已经为 convMenu 实现了良好的策略。这个想法是创建一个循环,并且仅当用户告诉您时才存在。您缺少的是对 mainMenu 执行相同的操作,并将 convMenu 视为 mainMenu 的子菜单。这意味着当您位于 convMenu 中时,您并不处于 mainMenu 之外。

//That's pseudo code
do {
displayMainMenu();
readUserInput();
switch(userInput) {
case 1 :
//here you put your convMenu
do {
displayConvMenu();
readUserInput();
switch(userInput) {
case 1, 2, 3 :
doConvertion();
case 4 :
exitConvMenu = true;
default :
//wrong input display a message and loop
}
} while(!exitConvMenu)
case 2:
exitMainMenu = true;
default :
//wrong input display a message and loop
}
} while(!exitMainMenu)

关于Java循环米转换程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com