【发布时间】:2013-06-05 06:14:42
【问题描述】:
我正在使用 java 语言创建一个简单的程序,它使用一堆类似的方法从用户那里检索信息。我用来处理用户输入无效数据的方法对我来说似乎很不正确,所以我正在寻求有关如何更好地处理无效数据的专业指导。
我试图搜索类似的问题,但没有找到。
这是我的一种方法的示例:
public static int getInput()
{
int temp = 1;
do
{
System.out.println("Answers must be between 1 and 15");
temp = reader.nextInt();
if(temp >=1 && temp <= 15)
{
return temp;
}
else
{
System.out.println("Please enter a valid value");
}
}while(temp > 15 || temp < 1);
//This value will never be reached because the do while loop structure will not end until a valid return value is determined
return 1;
}//End of getInput method
有没有更好的方法来写这个方法?
这个问题完全是虚构的,所以我可以学习更好的方法来在我未来的程序中实施。
是否可以使用带标签的 break 语句?如:
public static int getInput()
{
int temp = 1;
start:
System.out.println("Answers must be between 1 and 15");
temp = reader.nextInt();
if(temp >=1 && temp <= 15)
{
return temp;
}
else
{
System.out.println("Please enter a valid value");
break start;
}
}
提前非常感谢您。
【问题讨论】:
-
看起来不错。顺便说一句,你为什么不为此使用 GUI? awt/swt/swing....?在这种情况下,您有很多选择。一个是 InputVerifier - stackoverflow.com/questions/12997742/…
-
@Jayan 我只是想学习一个新概念;不需要 GUI 来说明问题。必须有更好的方法来做到这一点,最后一个 return 语句永远不会到达,并且 temp 检查它是否在允许的值内两次...编辑:对不起,我没有注意到最后一句话;我想在没有 GUI 的情况下执行此操作。
标签: java