gpt4 book ai didi

使用 while 循环的 Java 菜单循环

转载 作者:行者123 更新时间:2023-12-02 11:41:37 27 4
gpt4 key购买 nike

我正在尝试编写一个循环,让用户输入米的值,然后根据给定的菜单,他们将选择一个将打印出转换的选项,它应该运行直到用户输入 4 退出该程序。然而,我的程序无法无序运行每个循环或多次运行,我不确定到底为什么。我知道开关和休息,但我的老师不鼓励我们做任何我们作为一个类(class)还没有做的事情。

import javax.swing.JOptionPane;
public class Conversion_LAbA {

public static void main(String[] args) {
// TODO Auto-generated method stub
//Junior Nieves Alvarez, Conversion LabA

String inputString, inputOption;
double meters, kilometers, inches, feet;
int option;
inputString = JOptionPane.showInputDialog("Enter the Meters value");
meters = Double.parseDouble(inputString);
if (meters < 1)
{
inputString =JOptionPane.showInputDialog("Enter the Meters value");
}
System.out.println("Choose one of the Following"
+ " 1. Convert to Kilometers"

+ " 2. Convert to Inches"

+ " 3. Convert to Feet"

+ " 4. Exit");
inputOption = JOptionPane.showInputDialog("Choose an Option");
option = Integer.parseInt(inputOption);
while (option == 1)
{
kilometers = meters*0.001;
System.out.println(kilometers);
inputOption = JOptionPane.showInputDialog("Choose an Option");
option = Integer.parseInt(inputOption);
}
while (option == 2)
{
inches = meters*39.37;
System.out.println(inches);
inputOption = JOptionPane.showInputDialog("Choose an Option");
option = Integer.parseInt(inputOption);
}
while (option == 3)
{
feet= meters*3.281;
System.out.println(feet);
inputOption = JOptionPane.showInputDialog("Choose an Option");
option = Integer.parseInt(inputOption);
}
if (option == 4)
{
System.out.println("The program will end");
System.exit(0);
}
}

}

最佳答案

您的逻辑存在一些问题。

  1. 您希望将计量表的输入包装在 while 循环中,这样可以确保用户输入的计量表对于程序执行的其余部分有效。

  2. 剩下要做的就是用 if 语句将您的选项包装在 while 循环中,而不是为每个选项都使用 while 循环。这样您就可以选择一个选项,然后系统会提示您在程序运行期间尝试不同的转换,并能够按照您想要的任何顺序输入选项。

  3. 最后,将测量符号放在输出旁边会很有帮助,这样当用户选择一个选项时,他们可以看到他们使用的转换,km 代表公里,"代表英寸,' 代表英尺。

    String inputString, inputOption;
    double meters = 0, kilometers, inches, feet;
    int option = 0;

    while(meters < 1)
    {
    inputString = JOptionPane.showInputDialog("Enter the Meters value");
    meters = Double.parseDouble(inputString);
    if (meters < 1)
    {
    System.out.println("Invalid Meter value, please enter a value >= 1");
    option = 0;
    }
    }

    while(option != 4){
    System.out.println("Choose one of the Following"
    + "\n 1. Convert to Kilometers"
    + "\n 2. Convert to Inches"
    + "\n 3. Convert to Feet"
    + "\n 4. Exit");
    inputOption = JOptionPane.showInputDialog("Choose an Option");
    option = Integer.parseInt(inputOption);
    if(option == 1)
    {
    kilometers = meters*0.001;
    System.out.println(kilometers + "km");
    }
    else if(option == 2)
    {
    inches = meters*39.37;
    System.out.println(inches + "\"");
    }
    else if(option == 3)
    {
    feet= meters*3.281;
    System.out.println(feet + "'");
    }
    else if (option == 4)
    {
    System.out.println("The program will end");
    }
    }

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

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