输入非数字,一直提示输出错误信息

问题相关代码,请勿粘贴截图

public class ceshi {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a;
System.out.print("请输入一个整数:");
while(true)
{
try
{
a = scan.nextInt();
break;
} catch (Exception e) {
System.out.println("输入了不合法的整数,请重新输入:");
}
}
System.out.println("你输入的整数为:" + a);
}
}

缓存问题,缓存区的内容并没有被读取出来
直接导致了下一次循环 nextInt() 直接读取了缓存中的非法整数,再次触发异常被捕获,由此导致死循环。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632