我正在尝试创建一个方法,使用带有catch inputmatch的try-and-catch语句检查输入错误。它不起作用。有人能告诉我为什么我的return语句不返回用户的输入并将其存储在主类中调用的整数中(不包括call语句)。
System.out.print("Please enter the percent achieved for " + sName + ": %");
PromptErrorCheckingPercent(iPercent);
public static int PromptErrorCheckingPercent(int test){
Scanner keyboard = new Scanner(System.in);
boolean valid = false;
while (!valid)
{
try
{
test = keyboard.nextInt();
valid = true;
}
catch(InputMismatchException e)
{
System.out.println("Invalid Input. Please enter a valid integer");
keyboard.nextLine(); //nextLine for a reason
}
}
return test;
1条答案
按热度按时间lo8azlld1#
当
InputMismatchException
被抛出而不是keyboard.nextLine(); //nextLine for a reason
. 此外,不需要在的参数/参数中传递值promptErrorCheckingPercent()
方法,因为您正在尝试的内容在java中是不允许的。可能您认为传递该变量将有助于将数据存储在该变量中。它是
C-language
支持Pointer
(变量的地址)但为了安全起见,不允许在JAVA
.你可以查看下面的代码,看看它是否能解决你的问题。