cardnum要求为4位整数,为了防止输入非整型报错,加入了has.NextInt()命令。加入后,发现当cardnum输入字符串时,直接退出do while循环,百思不得其解,特来请教大家。

解决方案 »

  1.   

    因为你输入了String,所以in.hasNextInt()将返回false,因而直接退出。
      

  2.   

    话说这个输入String,怎么就返回false值了?是哪个布尔变量返回false值了?有朋友能帮忙解释一下吗?
      

  3.   

    public boolean hasNextInt()
    如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。扫描器不执行任何输入。 返回:
    当且仅当此扫描器的下一个标记是有效的 int 值时才返回 true 
    抛出: 
    IllegalStateException - 如果此扫描器已关闭