A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

5黑马币
Main(主方法){
创建键盘录入对象;
Int x=0;
whlie (sc.hasNextInt()){
     i = sc.nextInt();
     System.out.print(i+"  ");
}}
发现输入多个整数用空格隔开Enter后可以输出所有整数,但是键盘录入不会结束,问题怎样让代码输入一行就结束键盘录入?我也试到一个可以在while方法后面加String str = sc.nextLine();在最后输入非数字符就结束的方法,可这不是我要的。

最佳答案

查看完整内容

我用debug调试了一下,发现在录入最后一个字符之后,f6就停在了sc.hasNextInt()这个位置了,等待下次输入了,java默认的是用\r\n结束的一次输入,要想跳出这个循环必须自定义一个特殊字符呀,楼主为啥这么纠结,目测应该没有其他方法了吧,楼主结分吧*_*

9 个回复

倒序浏览
我用debug调试了一下,发现在录入最后一个字符之后,f6就停在了sc.hasNextInt()这个位置了,等待下次输入了,java默认的是用\r\n结束的一次输入,要想跳出这个循环必须自定义一个特殊字符呀,楼主为啥这么纠结,目测应该没有其他方法了吧,楼主结分吧*_*
回复 使用道具 举报
可以直接用  sc.close()方法来结束啊,你试试,不行再问我哈!
回复 使用道具 举报
青菜市场 来自手机 中级黑马 2015-12-19 22:38:00
板凳
kingjacob 发表于 2015-12-19 16:15
可以直接用  sc.close()方法来结束啊,你试试,不行再问我哈!

试过放while里面会报错,后面还是没用
回复 使用道具 举报
可以尝试加上一个条件判断啊,比如
if(i==-1){
    break;
}
用特殊字符控制跳出无限循环啊~
回复 使用道具 举报
星海浮沉 发表于 2015-12-22 15:32
可以尝试加上一个条件判断啊,比如
if(i==-1){
    break;

试过了\r\n都不行
回复 使用道具 举报

\r\n这不都被系统使用了吗?系统用来换行了啊!你得自己设置一个特别的用来作为判断的条件啊~!
回复 使用道具 举报
星海浮沉 发表于 2015-12-22 19:10
\r\n这不都被系统使用了吗?系统用来换行了啊!你得自己设置一个特别的用来作为判断的条件啊~! ...

不用设别 打个字母就跳出循环了,你没看清题目
回复 使用道具 举报
雨来 高级黑马 2015-12-24 20:12:41
9#
换nextLine(); 把从键盘接收的字符  封装成String 对象
回复 使用道具 举报
雨来 发表于 2015-12-24 20:12
换nextLine(); 把从键盘接收的字符  封装成String 对象

这样我就要切,我就是不想切,而且判断不通过,nexline不会被获取
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马