你用while当然会一直等待输入了,如果只想得到一个数据,把while换成if就行了

解决方案 »

  1.   

    楼主是分不清while和if的作用吗?
      

  2.   

    Scanner类不应该用在实现这个功能上。
      

  3.   

    楼主没理解while的语句的含义,你可以while里面加判段,来退出
      

  4.   

    你的scanner是用System.in构造的,没输入ctrl-z或非法字符之前它会一直等待输入,你可以试着用一个文件(里面只能有数字和空白)构造scanner,文件读完就停了
      

  5.   

    while会一直阻塞等待键盘输入 没法解决
      

  6.   

    我觉得你的程序是对的。目的是如果输入一直是数字,那就可以继续输入,如果不是数字,那程序就退出了。如果非要一次就退出,改成:Scanner input=new Scanner(System.in);
       int data=input.nextInt(); 
       System.out.print(data+" ");
      

  7.   


     Scanner input = new Scanner(System.in);
             while (!input.hasNextInt()) {  
      String str = input.next();
      }
             int i = input.nextInt();
             System.out.println(i);