晚上好,
我正在为一个介绍性的 java 类做作业,该类要求我使用 switch 和 try 语句来验证用户输入。Java 应用程序的用户应输入与数据类型相关的数字(1 - 字符串、2 - 整数、3 - 双精度或 4 - 退出)。该数字应该被验证,但无论数据是否有效,验证过程总是抛出异常。完成此操作后,该用户应该能够输入数据并让应用程序验证所述输入数据确实属于所选数据类型。鉴于我一直遇到抛出的异常,我什至无法测试这部分代码,但可以肯定它不会工作,因为我看到三个未使用的变量,根据我的文本,应该使用(strTryString 、strTryInt 和 strTryDouble)。我可以' t 在脑海中建立联系,在最初选择数据类型时,程序会说“用户选择了 double,将 input[strTryDouble?] 与 double 数据类型的参数进行比较”。对此的任何帮助将不胜感激。到目前为止,这是我所拥有的:
import java.io.*;
import javax.swing.JOptionPane;
public class MyType
{
public static void main(String[] args)
{
// declare class variables
String strChoice, strTryString, strTryInt, StrTryDouble;
int choice, tryInt;
double tryDouble;
boolean done = false;
// loop while not done
while(!done)
{
try
{
strChoice = JOptionPane.showInputDialog(null, "What's my type\n\n\n1) String\n2) integer\n3) double\n4) Quit the program");
choice = Integer.parseInt(JOptionPane.showInputDialog(null,strChoice));
switch(choice)
{
case 1:
JOptionPane.showMessageDialog(null, "Correct, any input can be saved as a String.");
break;
case 2:
tryInt = Integer.parseInt(strTryInt);
JOptionPane.showMessageDialog(null, "Correct.");
break;
case 3:
tryDouble = Double.parseDouble(strTryDouble);
JOptionPane.showMessageDialog(null, "Correct.");
break;
case 4:
done = true;
JOptionPane.showMessageDialog(null, "The program will now close.");
break;
default:
throw new NumberFormatException();
}
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null,"Please enter a 1, 2, 3, or 4.","Error",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}