java的Scanner类的hasNext()方法问题 20
Scannersc=newScanner(System.in);while(sc.hasNext()){System.out.println(sc.next());}命令...
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
System.out.println(sc.next());
}
命令行运行不会停止,你可以一直输入数据,不会自动结束,意思就是你跳不出这个循环了,为什么求指导??? 展开
while(sc.hasNext()){
System.out.println(sc.next());
}
命令行运行不会停止,你可以一直输入数据,不会自动结束,意思就是你跳不出这个循环了,为什么求指导??? 展开
6个回答
展开全部
hasNext()这个方法是如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
你可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。
例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
仅做参考!
你可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。
例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
仅做参考!
展开全部
你可以试着把sc.hasNext()打印出来看看
随便输入个字符 结果是true 因为hasNext()是获取字符的
while循环的条件是true
它当然就是死循环 跳不出去了
如果你换成hasNextInt()
输入不是Int类型的东西他就为false
那么循环可以退出
反之输入的是Int为true 他也会一直执行
直到flase为止
随便输入个字符 结果是true 因为hasNext()是获取字符的
while循环的条件是true
它当然就是死循环 跳不出去了
如果你换成hasNextInt()
输入不是Int类型的东西他就为false
那么循环可以退出
反之输入的是Int为true 他也会一直执行
直到flase为止
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-07
展开全部
Scanner sc = new Scanner(System.in);
此句 表示从控制台获取数据,
sc.hasNext() 表示你是否有输入数据,
while语句块 表示当你输入数据的时候,就执行输出sc.next()(输出内容)
所以只要你输入数据了,它就可以执行,
所以后台只是开了一块内存,一直未关闭,不算死循环
此句 表示从控制台获取数据,
sc.hasNext() 表示你是否有输入数据,
while语句块 表示当你输入数据的时候,就执行输出sc.next()(输出内容)
所以只要你输入数据了,它就可以执行,
所以后台只是开了一块内存,一直未关闭,不算死循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-23
展开全部
我记得以前好像可以直接回车跳出,但是现在突然发现了,掉坑。。。
while (scanner.hasNextLine()) {
String string = (String) scanner.nextLine();
if (string.equals("")) {
break;
}
}
这样就可以了,注意equals不能换成等号,因为等号比的是值(数值或地址值),而“”比较的其实是两个不同字符对象的内容而不是值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用AW521AM的回答:
hasNext()这个方法是如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
你可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。
例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
仅做参考!
hasNext()这个方法是如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
你可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。
例:以输入"0",结束输出
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {
System.out.println(sc.next());
}
仅做参考!
展开全部
炼金00000000000000000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询