看下面代码:

1 do {2             System.out.println("请输入您的纳税人类型:\n1 一般纳税人\n2 小规模纳税人");3                if (sc.hasNextInt()) {5                 i = sc.nextInt();6             }7         } while (i != 1 && i != 2);

本题 本来目的是想 选择输入纳税人类型 如果输入的不是INT类型的话,提示重新输入。

但运行后却发现不是这样,如果输入的不是INT类型的,会一直打印上面那句话 却不让输入了。一开始想不通为什么。后来老师给讲解了,扫描器扫描一个值,是执行hasnextxxx方法后第一次的扫描输入,也就是说当第一次执行hasnextint方法后 之后再调用 的此方法的值 都是false了。所以不执行了。也就是说hasnextxxx方法只检察一次扫描到的值。记住这是特性!

怎么让它再次执行扫描输入呢,需要重新实例化扫描器sc=new Scanner(System.in) 就可以了,如下:

1 do {2             System.out.println("请输入您的纳税人类型:\n1 一般纳税人\n2 小规模纳税人");3             sc=new Scanner(System.in);4             if (sc.hasNextInt()) {5                 i = sc.nextInt();6             }7         } while (i != 1 && i != 2);

转载于:https://www.cnblogs.com/zwl24/archive/2012/02/27/2369578.html

JAVA中的hasNextInt()方法多次调用只有一个结果的原因相关推荐

  1. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  2. Java中的main()方法详解

    源文作者:leizhimin    源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...

  3. Java 中使用反射来创建对象、调用方法

    Java 中使用反射来创建对象.调用方法 反射创建对象 反射调用方法 反射调用私有方法 反射调用可变参私有方法 反射调用的方法自身可以抛出异常的情形   假设已有下面的类: import java.l ...

  4. Java中获得了方法名称的字符串,怎么样调用该方法

    问题: Java中获得了方法名称的字符串,怎么样调用该方法 如果我有以下两个变量 Object obj; String methodName = "getName"; 在不知道ob ...

  5. Java系列:关于Java中的桥接方法

    这两天在看<Java核心技术 卷1>的泛型相关章节,其中说到了在泛型子类中override父类的泛型方法时,编译器会自动生成一个桥接方法,这块有点看不明白. 书上的例子代码如下: publ ...

  6. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  7. java中的dispose()方法

    java中的dispose()方法 先来看看 JAVA 1.5 的帮助文档的原文 - dispose - public void dispose() ****** 释放由此 Window.其子组件及其 ...

  8. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  9. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

最新文章

  1. 本周推荐10款免费的网站模板设计
  2. Linux下安装部署ElasticSearch教程【7.10.1】
  3. Nginx 负载均衡4种模式
  4. OpenFOAM并行计算方法
  5. PyTorch框架学习一——PyTorch的安装(CPU版本)
  6. 深度 | 面向云原生数据湖的元数据管理技术解析
  7. 1w用户的并发量多大_QQ邮件订阅中心下线:卢松松博客曾经有1W多订阅用户
  8. 电商美工中秋节电商淘宝页面设计模板素材,临摹参考框架
  9. linux命名管道进程间通信,《Linux 进程间通信》命名管道:FIFO
  10. ISE_FIFO_IP核接口测试(一)
  11. 【医疗影像处理】Erosion and Dilation of medical images masks using scipy.ndimage in python
  12. Proteus 8.13 安装教程
  13. python第一阶段小项目作业练习
  14. RK3328启动失败解决记录
  15. 邪恶的PLS-00103错误提示
  16. 两个有序链表合并成一个有序的单链表
  17. HTML的学习-2|HTML 标签(上)
  18. python评价指标_详解分类评价指标和回归评价指标以及Python代码实现
  19. 记frp内网穿透配置
  20. Oracle数据库--从入门到装逼

热门文章

  1. 计算机科学在地理信息科学中的作用,地理信息科学的孕育和发展
  2. 2020 CTF暑假夏令营培训Day2 密码学Crypto 部分笔记
  3. 我的世界javamod怎么装_耐斯地板 | 木地板的铺装方向,你还不知道?
  4. python 类 字典_python基础类型—字典
  5. 9.特殊矩阵的压缩存储
  6. [蓝桥杯]试题 基础练习 FJ的字符串
  7. XSS后台敏感操作(审计思路实现)
  8. 无类域间路由CIDR
  9. bzoj 1133: [POI2009]Kon(DP)
  10. bzoj 1660: [Usaco2006 Nov]Bad Hair Day 乱发节(单调栈)