java学习中遇到的Scanner死循环问题

来源:互联网 发布:java语法分析器 编辑:程序博客网 时间:2024/05/16 12:23
s = new Scanner(System.in);

程序描述:从控制台读取一个Int类型的整数,并输出。如果,输入格式不对则捕获异常,并重新要求输出,直到输入正确。

package java_learning;import java.util.*;public class Test {public static void main(String[] args) {Scanner s = new Scanner(System.in);while (true) {try {System.out.println("请输入a:");int a = s.nextInt();System.out.println("a:"+a);return;} catch (InputMismatchException e) {System.out.println("重新输入!");//s = new Scanner(System.in);continue;}}}}
问题运行结果,死循环。。。

解决:对s进行重新实例化。
即加上程序的注释行:s = new Scanner(System.in);

0 0