概述
Scanner sc = new Scanner(System.in);
此句 表示从控制台获取数据,
sc.hasNext() 表示你是否有输入数据,
while语句块 表示当你输入数据的时候,就执行输出sc.next()(输出内容)
所以只要你输入数据了,它就可以执行,
所以后台只是开了一块内存,一直未关闭,不算死循环。
这是yangxue_mifen博主写的,自己看了看,不是很懂,于是自己调试了一下。
例子1:
public class _07_错误票据1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
in.hasNext(); //返回boolean类型
String s = in.next();
System.out.println("打印:"+s);
}
}
结果:
数据 //用户键盘输入
打印:数据 //没有in.next()等待输入的过程,直接跳到println()打印
- 可以看到,系统只等待用户键盘输入一次。而in.hasNext()与in.next()单独使用时,系统都会等待用户键盘输入的。为什么这里少等待了一次呢,原因如下:
- in.hasNext()方法会判断是否有输入数据,如果有,则返回true,并将所输入的数据读取备用。当下次使用in.next()时,就不需要再次键盘输入数据了,无需用户输入,s的值直接被赋值为“数据”。
例子2:
public class _07_错误票据1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
in.hasNext();
while(in.hasNext()) {
System.out.println("哈哈哈");
}
in.hasNext();
}
}
结果:
www //用户键盘输入
哈哈哈
哈哈哈
哈哈哈
哈哈哈
。。。。 //陷入死循环
- 可以看到这里陷入了死循环,in.hasNext()返回boolean值,并且不会反复判断,因为第一次执行in.hasNext();后就将数据保存备用了。
最后
以上就是安详棒球为你收集整理的hasnext()用法的全部内容,希望文章能够帮你解决hasnext()用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复