Scanner in =new Scanner(System.in);
System.out.println("请输入被除数:");
int num1=0;
                String str=null;
if(in.hasNextInt()){
num1=in.nextInt();
                        System.out.println("输入的整数为"+num1);
}else{
                        str=in.next();
System.out.println("输入的被除数不是整数,程序退出!");
System.exit(1);
}上面这段代码,当执行到in.hasNextInt()时,出现等待用户输入,然后执行到下一个等待用户输入的方法时就不用再次输入了,可不可以理解为in.hasNextInt()方法中对下一次的用户输入方法做了处理呢?

解决方案 »

  1.   

    还有上面代码中的Scanner对象 in我发现也有一个 close()的方法,我只知道像数据库连接对象有close()方法,为什么这里的in也有close()方法呢,到底哪些情况下是需要有close()的呢?
      

  2.   

    地区键盘录入  觉得 Io流好点  Scanner  我用的很少(我的经验也很少呵呵)  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//读取键盘输入到  内存缓冲区
      

  3.   

    in.nextInt();表示准备接受一个int型的值。在接收完之后,如果你还想接收一个int型的值,可以再写一个in.nextInt();就可以了。
      

  4.   

    java虚拟机有个自动回收机制,你这个方法只被调用过一次而已不再被使用,然后就回收。
    其实很简单,要实现你要的效果,添加个死循环就行。代码如下