java nextline next_java中的nextLine函数

java nextline next_java中的nextLine函数今天在学习java异常处理的时候,下面这段程序中的nextLine()的用法怎么也看不明白。初学者看到这段代码会误以为程序中的input.nextLine()这句是多余的。其实,不使用这句的话,如果输入不是整数,程序会陷入死循环。当你不加input.nextLine()时,你输入小数,try块中给input.nextInt()就无法执行,因为小数无法被读取,我猜是小数一直留在键盘缓冲区。这时con…

大家好,又见面了,我是你们的朋友全栈君。

今天在学习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);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138770.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多种方法彻底解决pycharm中: OSError: [WinError 1455] 页面文件太小,无法完成操作 的问题

    多种方法彻底解决pycharm中: OSError: [WinError 1455] 页面文件太小,无法完成操作 的问题目录1.重启pycharm(基本没啥用)2.把num_works设置为0(可能也没啥用)3.调大页面文件的大小(彻底解决问题)相信很多小伙伴在使用pycharm的时候都遇到这个问个报错问题吧,我是在跑PyTorch相关代码遇到的这个问题,也搜索了很多解决办法,这里介绍下我总结的经验.这是我搜索到的三种解决方法,依次来介绍下:1.重启pycharm(基本没啥用)这是最简单的方法了,可以先尝试一下,反正也很简单,不过如果你是第一次遇到这个问题,基本是解…

    2022年6月24日
    410
  • CSS3中如何解决子元素继承父元素的opacity属性[通俗易懂]

    CSS3中如何解决子元素继承父元素的opacity属性[通俗易懂]问题css3中的opacity属性是用来设置div元素的不透明级别的,但是我们往往会遇到因为父级元素设定opacity后,子元素也跟着透明了,但是有时候我们只是想让背景是透明的,这该如何解决呢?错误的示例我们常常想到的方法是直接给子元素的opacity设定为1,如下:<!DOCTYPEhtml><html><head><metacharset=”utf-8″><title>opacity</title&g

    2022年5月20日
    44
  • ManagementObject_getsuperclass方法

    ManagementObject_getsuperclass方法原文:http://blog.csdn.net/hardstone1/article/details/5380775网上代码和MSDN帮助中都没有列出 ManagementObject[""]这里到底有哪些属性可以使用,参考了http://www.groupsrv.com/dotnet/about69957.html了之后发现了可以枚举出来所有属性,代码如函数getallprop()。…

    2022年10月2日
    3
  • Xmn 与 NewSize 设置说明

    Xmn与 NewSize都是设置新生代的内存大小。经过测试,写在最后的一个参数起作用。下面是我的测试信息。第一次参数设置:    内存信息:S0C(13056)+S1C(13056)+EC(104960)=131072K=128M第二次参数设置:内存信息:S0C(20480)+S1C(20480)+EC(163840)=204800K=200M…

    2022年4月8日
    155
  • python调用通达信函数大全_通达信dll开发实例,使用python在通达信里面选股

    python调用通达信函数大全_通达信dll开发实例,使用python在通达信里面选股内容导航 Q1 易语言编写通达信 dll 求助 生成和载入成功一 打开腾讯电脑管家 找到工具箱 电脑诊所 二 点击软件问题专区 三 在丢失 dll 文件一键修复区 找要修复的 dll 文件选项 四 点击立即修复 便可以恢复正常了 Q2 通达信软件导入公式 DLL 文件用什么程序编写以找另一台的电脑上去复制下这个缺失的文件 看看能否解决问题或者你可以尝试使用腾讯电脑管家来修复缺失 DLL 文件具体方法是 打开腾讯电脑管

    2025年10月28日
    5
  • pycharm如何在项目新建一个文件夹_pycharm怎么新建一个Python文件

    pycharm如何在项目新建一个文件夹_pycharm怎么新建一个Python文件目录一、新建工作空间二、新建项目三、新建python包四、新建目录五、新建python文件一、新建工作空间二、新建项目三、新建python包四、新建目录五、新建python文件…

    2022年8月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号