话不多说,上来就是干!
import java.util.Scanner;

public class Test_hasNextInt {

	/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); //关于hasNextInt判断后无限循环输出else项的解决办法
String next;
int i;
while(true) {
// Scanner sc = new Scanner(System.in); //第一种处理方法,把扫描器拿到里面来,每次循环都创建一个新的扫描器.else语句里直接提示输入错误就好了
System.out.println("请输入一个整数");
if (sc.hasNextInt()) { //如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。
i = sc.nextInt(); //如果是输入 22 33 会做两次输出
System.out.println(i);
} else {
// next = sc.next(); //第二种处理方法,把scanner缓存里的非int值接收掉
// System.out.println("您输入的是:" + next + ",请重新输入");
//注意:next() 查找并返回来自此扫描器的下一个完整标记 例如输入: aa bb cc 那么这里会先接收aa ,然后输出aa
//然后再while()循环,遇到if判断缓存里的bb 确定不是整数后继续走else语句输出bb.同理输出完cc才会停止
//如果输入的是 aa 22 cc,那么先走else输出aa, 再判断出是22是整数走if语句,走完再次走cc才能结束 String nextLine = sc.nextLine(); //第三种处理方法,算了 还是接收一行吧!
System.out.println(nextLine); //如果输入 22 aaa 333 ccc 第一次会走if把22接收掉,
//然后遇到aaa后走esls会把后面的整行都接收掉
//当然,正常情况下没有sc.hasNextInt()这一个判断的时候,
//nextLine()会把整行都接收掉,而这里是因为被上面的nextInt()拿走了一个22
//所以还是看需要把.第一种虽然每次输入都会创建一次Scanner对象,但是也算是一种合理的解决办法!
//总结:理解缓存,就会明白了!
}
}
} }

  

关于hasNextInt判断后无限循环输出else项的解决办法的更多相关文章

  1. WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...

  2. windows7开机后,罗技k380无法自动连接解决办法

    问题描述: windows7开机后,罗技k380无法自动连接,必须删除设备后重新发现才能正常连接. 解决办法: 是因为笔记本电脑的蓝牙设置问题.按如下设置即可解决. [Bluetooth设置]-[允许 ...

  3. redhat图形界面启动后出现桌面但是没有登录界面解决办法

    redhat图形界面启动后出现桌面但是没有登录界面解决办法 2014年07月11日 10:50:10 阅读数:7931 redhat Linux一直用着好好地,今天打开只有图像界面背景,没有出现登陆界 ...

  4. resin后台输出中文乱码的解决办法!

    resin后台输出中文乱码的解决办法! 学习了:https://blog.csdn.net/kobeguang/article/details/34116429 编辑conf/resin.con文件: ...

  5. iOS循环引用常见场景和解决办法

    好多场景会导致循环引用,例如使用Block.线程.委托.通知.观察者都可能会导致循环引用. 1.委托 遵守一个规则,委托方持有代理方的强引用,代理方持有委托方的弱引用. 实际场景中,委托方会是一个控制 ...

  6. Swift - 内存泄露原因(循环强引用)及解决办法

    Swift使用自动引用计数(ARC)来管理应用程序的内存使用.在大多是情况下,并不需要考虑内存的管理.当实例不再需要的时候,ARC会自动释放这些实例所使用的内存. 但ARC并不是绝对安全的.下面两种情 ...

  7. 使用RandomString方法后,结果返回相同的随机数解决办法

    所遇问题: 在做超市管理系统的登录项目时,在对“随机数的产生”出现一个问题,在产生多个随机数的时候,出现了产生了多个一样的随机数,具体代码如下: /// <summary> /// 生成随 ...

  8. 【原】安装Win7和Ubuntu双系统后,Win7耳机无声音的解决办法

    最近安装了Ubuntu的桌面版,作成了双系统,可是发现了一个问题:进入Win7后有时插耳机会没有声音,外放有声音.后来更新驱动也没有解决问题,最后在网上查到了解决办法. 产生原因:进入Ubuntu后, ...

  9. hadoop启动后jps查不到namenode的解决办法

    最近由于项目需要开始接触hadoop,在配置伪分布式启动后,jps查询进程发现少了namenode,而DataNode却存在. 下面是我的core-site.xml和hdfs-site.xml配置: ...

随机推荐

  1. language level in Intellij IDEA

    The Language level setting sets which features the code assistance in the editor should support. For ...

  2. 数论 - Pairs(数字对)

    In the secret book of ACM, it’s said: “Glory for those who write short ICPC problems. May they live ...

  3. Android入门(二):Android的系统架构

    android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层.   从技术方面看,An ...

  4. NOI 题库 7084

    7084  迷宫问题 描述 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, ...

  5. ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  6. android获取本地图片并显示图片

    import java.io.FileNotFoundException; import android.content.ContentResolver; import android.content ...

  7. Grandle全局变量定义及引用

    在Project的build.gradle脚本中定义一些全局变量 ext { compileSdkVersion = 21 buildToolsVersion = "24.0.1" ...

  8. 查找Maven JAR坐标

    http://mvnrepository.com/ http://search.maven.org/

  9. JQ第三天//基本纯代码

    一.让图片飞 代码:<script type="text/javascript">        $(function () {            $(docume ...

  10. C语言 ---- 指针 iOS学习-----细碎知识点总结

    内存的访问形式:1.直接访问:通过变量名进行访问.2.间接访问:先找到变量存放的地址,然后根据地址去访问对应的内存空间. 指针--- // 定义一个整形指针变量,用来存储num1在内存中的地址    ...