我正在尝试编写一个循环,让用户输入米的值,然后根据给定的菜单,他们将选择一个将打印出转换的选项,它应该运行直到用户输入 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);
}
}
}
最佳答案
您的逻辑存在一些问题。
您希望将计量表的输入包装在 while 循环中,这样可以确保用户输入的计量表对于程序执行的其余部分有效。
剩下要做的就是用 if 语句将您的选项包装在 while 循环中,而不是为每个选项都使用 while 循环。这样您就可以选择一个选项,然后系统会提示您在程序运行期间尝试不同的转换,并能够按照您想要的任何顺序输入选项。
最后,将测量符号放在输出旁边会很有帮助,这样当用户选择一个选项时,他们可以看到他们使用的转换,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/