try异常处理与Scanner循环问题
2015-09-14 21:02
218 查看
今天遇到个问题,就是我把一个变量定义成int型,用Scanner在控制台输入数据时如果不小心输入的数据是string型(例如本例输入a),则程序就会报错,如图:
所以我们要将代码放到try catch块中捕获一下,修改后代码如图:
可以看到我们已经将代码用try catch包围,可是这时候又遇到了一个问题,就是当我们输入了一个字母a后,程序会无限的循环下去,不断的走的是catch里面输出的语句,这是为什么呢?其实原因很简单因为创建Scanner对象这句话在循环外面,所以当第二次循环时它不会让你再输入一个数而还是用的你第一次输进去的数,把创建Scanner对象语句(上图中的1.语句)移到while循环里面就ok了。结果如图:
所以我们要将代码放到try catch块中捕获一下,修改后代码如图:
可以看到我们已经将代码用try catch包围,可是这时候又遇到了一个问题,就是当我们输入了一个字母a后,程序会无限的循环下去,不断的走的是catch里面输出的语句,这是为什么呢?其实原因很简单因为创建Scanner对象这句话在循环外面,所以当第二次循环时它不会让你再输入一个数而还是用的你第一次输进去的数,把创建Scanner对象语句(上图中的1.语句)移到while循环里面就ok了。结果如图:
相关文章推荐
- Android网络连接---xUtils(HttpUtils)
- 冒泡排序
- 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发
- inline-block元素之间空白间距的解决办法
- DOM
- “友谊竞赛”活动策划书
- 文件(夹)属主权限chown
- Longest Substring Without Repeating Characters
- 2015年9月11日codercup编程世界杯(北京)总结
- Android中ViewPager(让用户可以左右切换当前的view)
- Codeforces Round #319 (Div. 2) 577C Vasya and Petya's Game(筛选法)
- UIImageC处理
- 有未经处理的异常: 0xC0000005: 写入位置 0x01260000 时发生访问冲突
- MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验
- Java内存管理实战
- SQLAlchemy---操作数据库实例
- 广播接收器的使用
- hdu 5446 Unknown Treasure(lucas定理+中国剩余定理)
- PostgreSQL 实现交叉表(行列转换)的五种方法
- POJ百练 2754:八皇后