JAVA input的无限循环问题,请大家帮忙看看,谢谢了! 5
以下程序中,但发生异常时就会产生无限循环,用F6查看了一下,发现input中有一个我刚刚输入的非数字字符,请问下:1、如何处理这种异常?(是否可以在catch中将inpu...
以下程序中,但发生异常时就会产生无限循环,用F6查看了一下,发现input中有一个我刚刚输入的非数字字符,请问下:
1、如何处理这种异常?(是否可以在catch中将input清空?)
2、我这种捕获异常的方式正确吗?
分数不多,只有5分了,请大家笑纳!
谢谢大家的意见,刚刚通过尝试已经知道问题了,这个是由于input的字符串缓存导致的,过程是这样的:
1、在codeID处导入了input输入的字符串
2、输入字符“R”后产生异常
3、异常处理后从新进入while循环
4、input中字符串缓存仍然为“R”(系统不会自动执行input.nextLine()方法),所以继续产生异常
所以解决方法为:在catch中加入input.nextLine();将input字符串缓存放到下一行,然后就可以不一开始就产生异常,并可以重新输入字符了,请后来者悉知! 展开
1、如何处理这种异常?(是否可以在catch中将input清空?)
2、我这种捕获异常的方式正确吗?
分数不多,只有5分了,请大家笑纳!
谢谢大家的意见,刚刚通过尝试已经知道问题了,这个是由于input的字符串缓存导致的,过程是这样的:
1、在codeID处导入了input输入的字符串
2、输入字符“R”后产生异常
3、异常处理后从新进入while循环
4、input中字符串缓存仍然为“R”(系统不会自动执行input.nextLine()方法),所以继续产生异常
所以解决方法为:在catch中加入input.nextLine();将input字符串缓存放到下一行,然后就可以不一开始就产生异常,并可以重新输入字符了,请后来者悉知! 展开
展开全部
你 while 里的条件 一直为true 由于你输入了一个非数字 没进到 switch里面去 所以循环不会跳出
你可以吧先定义一个 布尔类型 的变量 在catch里把值变成false ,default后面还差个break 改完后应该就不会出现死循环了。
你可以吧先定义一个 布尔类型 的变量 在catch里把值变成false ,default后面还差个break 改完后应该就不会出现死循环了。
展开全部
蛋用。你外层while(true)会一直循环。你又没设置跳出循环的东西。。。在catch中加上。break。跳出循环。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在delfault里面加个continue试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议贴出来代码,而不是贴图,我还要一个个敲么。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
更多回答(2)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询