JAVA中Scanner类的nextInt方法在接受异常输入时如何提示重新输入

Python014

JAVA中Scanner类的nextInt方法在接受异常输入时如何提示重新输入,第1张

这个问题的原因在于之前建立的Scanner类对象的nextInt()接收的非整型值没有被释放,除了被try catch语句块捕获输入不匹配异常并进行循环外,因在第二次循环时,没有新建新的Scanner类对象,导致原Scanner类对象的nextInt()接收的非整型值被直接赋予给了ID变量,所以导致出现死循环,所以这个问题的主要原因不是出在循环体上,而是出现在新建Scanner类对象上,只要在

try {

ID = scanner.nextInt()

} catch (Exception e) {

System.out.println("请输入一个正整数ID值:")

}

中的 ID = scanner.nextInt()之前加一个新建Scanner类对象,就能把问题解决:

try {

Scanner scanner = new Scanner()

ID = scanner.nextInt()

} catch (Exception e) {

System.out.println("请输入一个正整数ID值:")

}

上面还有句话

Scanner

in

=

new

Scanner(System.in)

int

a

=

in.nextInt()//输入数字赋值给a

或者String

s

=

in.nextLine()//输入一串字符,把他给s

都是从控制台输入东西

回车结束

可以通过”Scanner“函数 直接输入参数的形式,来实现输入语句,举例:

import java.util.Scanner

public class Test {

public static void main(String[] args) {

Scanner input=new Scanner(System.in)

System.out.println("请输入一个数值:")

int length=input.nextInt()//输入一个正整数

System.out.println("输入的数字是:"+length)}

}

备注:Scanner函数就是用来进行语句输入的,上面举例的是数值型,也可以用以下语句“String length=input.next()”,输入的就是字符串等。