gpt4 book ai didi

Java菜单循环

转载 作者:行者123 更新时间:2023-11-30 03:43:07 25 4
gpt4 key购买 nike

我有一个不与我合作的转换程序。

它将米转换为:

  1. 公里,
  2. 英寸,
  3. 脚,或者它
  4. 退出程序。

我的问题是它应该继续运行并允许您输入选项 1,获得答案并继续输入选项,直到您点击 4 结束程序。

到目前为止,在计算出第一个选择或告诉以米为单位的距离无论如何都不能为负数之后就结束了。

这是我第一次向论坛寻求帮助,我对 java 非常陌生,所以请让我保持简单。

import java.util.Scanner;

public class ConversionProgram
{

public static void showKilometers(double meters) //Converts Meters to Kilometers
{
double kilometers = meters * 0.001;
System.out.println(meters + " meters is " + kilometers + " kilometers.");
}

public static void showInches(double meters) //Converts Meters to Inches
{
double inches = meters * 39.37;
System.out.println(meters + " meters is " + inches + " inches.");
}

public static void showFeet(double meters) //Converts Meters to Feet
{
double feet = meters * 3.281;
System.out.println(meters + " meters is " + feet + " feet.");
}


public static void quitProgram() {
System.out.println("Bye!");
}
public static void showMenu() {
System.out.println(" 1. Convert to Kilometers ");
System.out.println(" 2. Convert to Inches ");
System.out.println(" 3. Convert to Feet ");
System.out.println(" 4. Quit the program ");
System.out.println(" ");
}


public static void main(String[] args) {

double meters;
int choice;

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter a Distance in Meters: ");
meters = keyboard.nextDouble();

if (meters < 1) {
System.out.println("Meter can not be negative.");
} else showMenu();
choice = keyboard.nextInt();
switch (choice) {
case 1:
showKilometers(meters);
break;

case 2:
showInches(meters);
break;

case 3:
showFeet(meters);
break;

case 4:
quitProgram();
break;
}
}
}

最佳答案

只要用户决定不退出程序,您就应该使用循环并继续要求新输入。您可以在程序执行的早期步骤中在询问用户输入之前开始此循环。当然,应该存在循环中断的情况。考虑到您提供的代码,我认为在退出选择下使用 boolean 标志是有意义的。一个例子如下:

import java.util.Scanner;


public class ConversionProgram


{
public static void showKilometers(double meters) //Converts Meters to Kilometers
{
double kilometers = meters * 0.001;
System.out.println(meters + " meters is " + kilometers + " kilometers.");
}

public static void showInches(double meters) //Converts Meters to Inches
{
double inches = meters * 39.37;
System.out.println(meters + " meters is " + inches + " inches.");
}

public static void showFeet(double meters) //Converts Meters to Feet
{
double feet = meters * 3.281;
System.out.println(meters + " meters is " + feet + " feet.");
}


public static void quitProgram() {
System.out.println("Bye!");
}

public static void showMenu() {
System.out.println(" 1. Convert to Kilometers ");
System.out.println(" 2. Convert to Inches ");
System.out.println(" 3. Convert to Feet ");
System.out.println(" 4. Quit the program ");
System.out.println(" ");
}


public static void main(String[] args) {

double meters;
int choice;

Scanner keyboard = new Scanner(System.in);

// Loop breaker
boolean quitFlag = false;

// Whole program wrapped around a loop
while (!quitFlag) {
System.out.println("Enter a Distance in Meters: ");
meters = keyboard.nextDouble();

if (meters < 1) {
System.out.println("Meter can not be negative.");
} else showMenu();
choice = keyboard.nextInt();
switch (choice) {
case 1:
showKilometers(meters);
break;

case 2:
showInches(meters);
break;

case 3:
showFeet(meters);
break;

case 4:
quitFlag = true;
quitProgram();
break;
}
}
}
}

关于Java菜单循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375962/

25 4 0