java nextline next_java中的nextLine函数
今天在学习java异常处理的时候,下面这段程序中的nextLine()的用法怎么也看不明白。初学者看到这段代码会误以为程序中的input.nextLine()这句是多余的。其实,不使用这句的话,如果输入不是整数,程序会陷入死循环。
当你不加input.nextLine()时,你输入小数,try块中给input.nextInt()就无法执行,因为小数无法被读取,我猜是小数一直留在键盘缓冲区。这时continueInput = false没有执行,程序直接跳到catch块中,执行了输出语句之后,开始循环的下一次执行。第二次循环时,因为上次输入的小数依然在键盘缓冲区内,input.nextInt()直接从键盘缓冲区得到整数失败,你连输入的机会都没有了,直接跳到catch,后面的执行就与第一次一样。如此,程序就陷入了死循环。
如果你加入input.nextLine(),缓冲区的小数就能被读取走,下次就能正常键盘输入了,就不会出现死循环的问题了。
import java.util.InputMismatchException;
import java.util.Scanner;
public class nextLineDemo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean continueInput = true;
do {
try {
System.out.print("enter an integer");
int number = input.nextInt();
System.out.println("the number entered is" + number);
continueInput = false;
} catch (InputMismatchException e) {
System.out.println("try again, incorrect input");
input.nextLine();
}
}while(continueInput);
}
}
java nextline next_java中的nextLine函数相关推荐
- java scan.next_Java使用scanner.nextLine()
尝试使用java.util.Scanner中的nextLine()方法时遇到麻烦. 这是我尝试过的: import java.util.Scanner; class TestRevised { pub ...
- java poi 导出中利用sum函数实现合计功能
java poi 导出中利用sum函数实现合计功能 之前也写过导出功能但是没有写过合计.所以记录下来当做笔记. for(int i = 0; i < arrSize; i++) {JSONObj ...
- java的nextline_java中的nextline()
今天在java上机课时遇到了个小问题,使用Scanner输入数据时,使用了一次nextInt(),一次nextLine(),却只接收了一个整数.代码如下 code1: 1 package cn.dx; ...
- java去掉字符串中前后空格函数_JAVA中去掉字符串空格各种方法详解
1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 代码如下 复制代码 ...
- java去掉字符串中前后空格函数_Java去除字符串中的空格
1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 String str ...
- Java实现Excel中的NORMSDIST函数和NORMSINV函数
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-math3&l ...
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...
- java中使用nextLine(); 没有输入就自动跳过的问题?
[问题分析] 必要的知识:in.nextLine();不能放在in.nextInt();代码段后面 否则in.nextLine();会读入"\n"字符,但"\n" ...
- nextline函数_Java中的nextline()函数与next()问题
[写在前面] import Java.util.*; Scanner in = new Scanner(http://System.in); [出现的问题] 在循环中相连的nextLine();会出现 ...
最新文章
- Asp.net MVC 3实例学习之ExtShop(五)——产品详细页
- Heartrate:一个牛逼的工具,Python执行实时可视化
- 2012 12 12 (109)闪回操作
- 沉浸式5G实景、AI+AR体验、机器人互动|5G+数智化展馆广州开幕
- Delphi获取显卡和系统各种音频设备的代码实现
- leetcode 700. 二叉搜索树中的搜索 思考分析
- WuJiuVideoX视频小说图片站群程序开源源码
- pip导包CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘异常处理
- @sql 单元测试_10个最常见SQL单元测试错误
- windows优化大师怎么用_软件不能用又卸载不掉怎么办——用Windows自家的卸载工具吧(dos级卸载)...
- widow下svn上传项目时的文件可执行权限问题
- exxi6.7如何传文件到win7_win7系统被删除文件如何恢复 恢复被删除的文件操作方法【详解】...
- 区块链安全:基于区块链网络攻击的方式原理详解
- VJ—蟠桃记(C语言)
- iTEXT常用属性设置
- WiFi探针的原理与安全
- java对pdf分割_PDFBox分割PDF文档
- eye-in-hand手眼标定系统
- 一些关于芯片烧录的心得
- 创建第一个适用于Android的自定义Gradle插件-第2部分:在构建时生成资源