【发布时间】:2014-02-11 05:02:35
【问题描述】:
我正在做一个程序,它允许我将电阻值解码为颜色。然而,即使在网上搜索了解决方案后,我仍然不明白为什么我无法修复它。我刚学了大约 4 个月,所以我是这方面的业余爱好者。
它应该像这样运行:Menu>Select1>FirstColour>Selection>SecondColour>Selection>FourthColour>Selection>FifthColour>Selection>ShowDecodedColour>LoopToMenu。
但是当我在菜单中选择1时,我立即得到“输入第一个颜色条的号码:无效号码请重新输入您的号码:”
我检查了我的 int 激活器的值,它总是 -1。
请帮忙!
我的代码:http://pastebin.com/ezVHLxYj
这是工作代码,但是因为它是可崩溃的,所以教授要求我使用 switch 函数而不是 else-if,以及其他一些问题,例如将 String 转换为 Int 以防止读取输入时出错:http://pastebin.com/6YM4ztZXo
【问题讨论】:
-
IMO 代码太多...不过有一个提示:将
switch语句更改为简单的:four[k] = OneColour[activator]; -
Read this post,在
nextLine()之前使用nextInt()是一个常见的错误 -
@alfasin haha 是的,这是我的编程项目,所以教授期待程序员的高质量工作:(嗯,是的,我明白你的想法。我使用了 switch 功能,所以如果数字无效,无论字符或数字,它会打印“无效”。有没有办法跟进你的方法?
-
@Christian 谢谢!那行得通!尽管我输入了正确的数字,但我仍然收到无效消息:(
-
是的,使用 try/catch:
try{ a = Integer.parseInt(choices);} catch(NumberFormatException e){ a = -1;} finally{ return a;}