Java新手在这里。
我创建了一个函数来简单地返回用户通过 Scanner 给出的 int 。目标是避免用户未键入整数时出现错误,通知他们并让他们重试。
如果第一次尝试时该值是整数,则它工作正常,但如果我键入一个字符(出现错误,函数“重新启动”),则该函数将返回“默认”零。尝试了不同的事情,但我绝对不明白这里的逻辑。
这是代码:
//Initialize the Scanner earlier
public static Scanner keyBoardRead = new Scanner(System.in);
public static int intEntry()
{
int entry;
keyBoardRead = new Scanner(System.in);
if (keyBoardRead.hasNextInt() == true)
{
entry = keyBoardRead.nextInt();
System.out.println("entry variable = "+entry);
// Here the correct entry prints but doesn't seem to return
return entry;
}
else
{
System.out.println("Invalid entry.\n");
intEntry();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
示例输出:
z
Invalid entry.
2
entry variable = 2
// Function exits and output = …Run Code Online (Sandbox Code Playgroud)