刚学完javaSe,遇到个很难的问题,百思不得其解

987812492 2017-07-10 10:31:53
背景:
while(true){
canner imput
switch()

}

在while里面有一个switch,根据用户输入来选择(控制台)

然后case里面有个 输入 int 类 然后我加了 异常处理(出现异常之后break)重新进行while循环

结果 case里面sacnner 异常的输入,没有被清空,导致,这次while 循环没有输入,直接用了case里面的输入异常

的那个结果(一脸懵逼!),然后while循环了,直接进入的 switch 里的deflat,然后deflat有个break,重新while

这次while 就好了,,,中间那个while多余了,原因是上次 Scanner 异常输入没有刷新掉,,,大神们 有办法解决吗

啊啊啊!!!!
...全文
1651 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在每次循环开始时都new 一次Scanner 就行了

while(true){
        Scanner sc = new Scanner(System.in);
        String input= sc.next();
switch()

}
约翰羊 2017-08-17
  • 打赏
  • 举报
回复
没太明白要表达什么意思,支持上代码。
ly_LAN 2017-08-17
  • 打赏
  • 举报
回复
我靠,能不能把代码贴出来。。。
JOKER叔叔 2017-08-11
  • 打赏
  • 举报
回复
外部定义内部赋值,操作同一个对象,栈区地址指向同一个对象 循环内重复创建对象,指针出现了问题
西瓜可乐520 2017-08-11
  • 打赏
  • 举报
回复
CODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODECODE
东北小汉 2017-08-10
  • 打赏
  • 举报
回复
你要实现一个什么样的功能,从代码的布局来讲就是有些不合理。会产生一些不必要的麻烦。
东北小汉 2017-08-10
  • 打赏
  • 举报
回复
Scanner 是接收控制台输入的,你把Sacnner sc = new Scanner(System.in);放到循环的外面。注意,凡是遇见sc.next()或者sc.其他什么,就是等待控制台输入,处于阻塞状态,代码也停在那里。如果不需要接收控制台输入信息了,让sc.close()就好了。如果还有什么需要可以留言给我。看到你的代码过少,只能说这么多了。
qq_19979481 2017-08-10
  • 打赏
  • 举报
回复
这个问题我也遇到过 好像是在try catch 的catch里面重新int 原理是int a 程序就会在内存中划一个区域 当给它输入一个字符串 根本不能赋值 所以赋一个NULL值 此时a没有内存 在catch里面重新int a给它重新在内存中划一个区域
qq_24190041 2017-08-04
  • 打赏
  • 举报
回复
什么缓存不缓存,两个不同的输入就要用两个不同的变量接收,用变量判断,你应该是没有用变量接收
自由自在_Yu 2017-08-04
  • 打赏
  • 举报
回复
表达的不清楚,就贴上你的代码,注意一下关键字,比如Scanner、default
自由自在_Yu 2017-08-04
  • 打赏
  • 举报
回复
引用 9 楼 qq_34952959 的回复:
竟然说Scanner没人用,,, 控制台语句不就是用 Scanner 来输入的吗
这个也就是初学自己写个测试例子用,开发的时候很少用
丶2p 2017-08-04
  • 打赏
  • 举报
回复
把你的代码拿上来,不用举例子。。
nvli_bugufu 2017-08-03
  • 打赏
  • 举报
回复
明天_你好丨 2017-07-11
  • 打赏
  • 举报
回复
后面都用页面了!
987812492 2017-07-10
  • 打赏
  • 举报
回复
就是,我这次用Scanner 从控制台接受一个int类型的数,然后程序运行,输入的string会报错,所以需要异常处理吗不是 处理完了break,返回 但是我上次接受的那个 数 ,还在Scanner缓冲区里,怎么去掉他, --
soton_dolphin 2017-07-10
  • 打赏
  • 举报
回复
错别字太多,重新写
丄whistle 2017-07-10
  • 打赏
  • 举报
回复
贴代码!贴代码!贴代码!
987812492 2017-07-10
  • 打赏
  • 举报
回复
竟然说Scanner没人用,,, 控制台语句不就是用 Scanner 来输入的吗
BHWCJCO 2017-07-10
  • 打赏
  • 举报
回复
不懂帮顶!! 支持!!支持!!
逗泥丸的平方 2017-07-10
  • 打赏
  • 举报
回复
不太懂 你是说reset吗. (我刚查的API) scanner那种奇怪的东西,多数情况是没什么人用的吧..
加载更多回复(2)

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧