小编Pab*_*blo的帖子

扫描仪返回错误的 int 值

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)

java java.util.scanner

4
推荐指数
1
解决办法
671
查看次数

标签 统计

java ×1

java.util.scanner ×1