Java Dice游戏中的反问题
答案 0 :(得分:0)
完成后,您只调用Stats()
方法一次,因此userWins++
和userLoss++
语句只调用一次。您应该在DispOutcome()
方法中移动这些语句,以便为每个游戏调用它们。您已经检查了(guess == dicesum)
,这是他们去的地方。
答案 1 :(得分:0)
我可以看到2个问题:
percentW = (userWins / games);
percentL = (userLoss / games);
变量userWins
,games
和userLoss
都是整数。所以这些划分将被视为整数算术。这将导致percentW
和percentL
成为0.0
。
提示:要使用浮点强制执行除法,请将其中一个或两个操作数转换为double
。你有没有被教过如何从一种原始类型转换为另一种原始类型?
变量的增量发生在Stats
方法中。 Stats方法只调用一次。因此,变量只会增加一次。
提示:如果Stats
的目的是打印出统计数据,那么你用错误的方法递增得分。
顺便说一下,风格和其他方面存在一些问题:
方法名称不应以Java中的大写字母开头。
缩进不一致。我怀疑您在源文件中使用TAB字符。如果将代码剪切并粘贴到Markdown ...以及其他上下文中,则会导致问题。例如Linux / Mac与Windows!
最好将IDE配置为使用SP字符进行缩进。
您使用{
... }
的方式存在问题。例如:
{
if (guess == dicesum)
System.out.println("You won!");
else if (guess != dicesum)
System.out.println("Sorry! You lost!");
}
如果你看一下,那些括号在那里没有用处。
在这样的声明中:
GuessNum(); //call GuessNum method
评论是(IMO)有害的。它说代码中没有任何东西是不完全明显的。事实上,它真正做的只是分散读者。
此代码应为OO。您严重依赖static
方法和static
变量。 (也许这是下一课......)