前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中Scanner对象中hasNext()与next()方法浅析

Java中Scanner对象中hasNext()与next()方法浅析

作者头像
全栈程序员站长
发布2022-09-09 09:58:48
8730
发布2022-09-09 09:58:48
举报
文章被收录于专栏:全栈程序员必看

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

相信很多像我一样在刚刚接触Java的时候都有遇到这样的问题:

Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析

我们可能希望的是:先输出“请输入:”然后我们就可以在控制台输入一个字符串或数字。

但是,事实却是:控制台要我们先输入,输入后才显示“请输入:”。

Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析

这是怎么回事?

原因:

首先,sc.hasNext()和sc.next()都可以用来输入

Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析

我们,可以发现,hasNext()返回的是boolean类型而next()返回的是你输入的那个值,

sc.hasNext()可以理解为把我们输入的值存到了sc当中而sc.next()可以理解为从sc中取值,取值后将标识符后移(可以理解为:取完值后这个值就不在了),如果sc中没有值了,它也会要求输入一个值(前面说了它们两都可以输入)。

然后我们再来分析一下开始的那段程序:

Java中Scanner对象中hasNext()与next()方法浅析
Java中Scanner对象中hasNext()与next()方法浅析

首先,进入while循环,sc.hasNext()就要求我们给他输入一个值,所以就不会输出“请输入:”,当我们输完后,String str = sc.next()中,会从sc中取出我们输入的那个值返回到str中,如果没有值,它就会被阻塞要求我们给它一个值。

以上内容纯属个人理解(如果理解不同,请查阅官方文档)

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档