感谢CSDN大佬们的教育让我通透了
class Demo01{
public static void main(String[] args ){
Scanner sc = new Scanner(System.in);
int i = 0;
while(true){
if(sc.hasNextInt){
i = sc.nextInt();
System.out.println(“用户输入的值为:”+i );
}else{
System.out.println(“输入的不是整数:”);
//这样会陷入死循环 根据CSDN大佬的提示加上next();
sc.next();
//当调用next()会将空间中的值给next,同时清空它空间中的值。
}
}
}
根据CSDN的大佬们提醒 这个程序的bug就存在于这
hasNextInt()有点像缓存的机制,当调用它的时候,它的空间会存入一个值,再次调用不会覆盖或者增加,而是保持原来的值。当调用next()会将空间中的值给next,同时清空它空间中的值。