我正在尝试创建一组代码,可以用计算机猜数字。问题部分和调试控制台部分都很清楚,我能够运行它,直到尝试通过集成终端输入值。
我已将Input.nextLine()返回的字符串值转换为int值,尽管这似乎没有效果,但我也从在集成终端而不是调试控制台上运行代码切换了。另外,我尝试了catch(NumberFormatException)语句,但由于Visual Studio Code无法识别catch或NumberFormatException而失败。
while ( win == false) { int CorrectNumber = 70; int g = (int)( Math.random() * 101 ); System.out.print( "The Number I Guess Is:" + g);
String TooHigh = "TooHigh"; //type TooHigh if the number computer guessed is too high
TooHigh = input.nextLine(); int h1 = Integer.parseInt(TooHigh);
String TooLow = "TooLow"; //type TooLow if the number computer guessed is too low
TooLow = input.nextLine(); int l1 = Integer.parseInt(TooLow);
if ( g == h1 ) //too high { int y = (int)( Math.random() * ( g - 70 ) ); System.out.print( "Another Number I Guessed is: " + y ); } else if ( g == l1 ) //too low { int z = (int)( Math.random() * ( 70 - g ) ); System.out.print( "Another Number I Guessed is: " + z ); } else if ( g == 70 ) //computer wins { win = true; } 当我输入单词告诉计算机时,它猜出的数字是否太大或太小,我希望它能给我另一个数字。但是,我收到以下消息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "TooLow"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:652) at java.base/java.lang.Integer.parseInt(Integer.java:770) at RevGuess.main(RevGuess.java:23)
您可以获取下一次输入的字符,建议在程序里面增加获取字符串长度的语言,然后用长度和数值比较就能解决您的问题了
你为什么要从字符串中得到一个int值,因为它告诉你猜测值太低了?可以将其视为字符串,然后可以将字符串与.equals进行比较,以查看字符串的值是否相同。如果是,你告诉程序它太低或太高。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。