| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:Java两个细节问题求解答外加一个小问题
只看楼主 加入收藏
csy294745333
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2012-3-27
结帖率:9.09%
收藏
已结贴  问题点数:10 回复次数:1 
Java两个细节问题求解答外加一个小问题
细节问题1:我在多个方法中使用了Scanner scanner=new Scanner(System.in)语句,并且在方法结束前都进行了流资源关闭操作scanner.close(),但是,一旦第一个方法关闭了它的流资源,后面的方法里就没法进行键盘录入并且报异常了,这么说一个虚拟机里面使用的都是同一个System.in了?第一个方法关闭了第二个方法的录入资源?是这样么?
细节问题2:我的某个主函数最开始就进行录入操作
程序代码:
Scanner scanner=new Scanner(System.in);
System.out.println("请输入选项");
int choice=scanner.nextInt();
System.out.println("请输入语句");
String string=scanner.nextLine();[或者写成这样String string=scanner.next();]

...=scanner.next...

至此,会产生一个问题,在我string录入结束后scanner里面一直还有残留信息,导致再后面的录入直接被跳过,没法输入,可是我找了很久就是没发现这个残留信息是哪来的

后来我把这个输入操作放到一个非主函数里面,就录入正常了,请问这种问题是怎么产生的?

小问题1:一个函数里面的while循环里面建立的任何对象都是while的while局部变量还是所述这个函数的?
搜索更多相关主题的帖子: choice 虚拟机 Java 键盘 资源 
2013-11-14 15:45
xstar海绵
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:160
注 册:2013-11-3
收藏
得分:10 
System.in 里面的in是静态的属于System类 不管什么时候调用in它都是那一个 所以可以说都是它 除非之后你再重新赋值
第二点 可能是读取时留下了 回车换行符 /r/n ...
while 中的变量所属主要还是根据变量声明的位置 声明时在哪个作用域就属于哪个作用域 作用域就是大括号{}之间
2013-11-14 21:30
快速回复:Java两个细节问题求解答外加一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015885 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved