Java骰子游戏中的反问题

Java骰子游戏中的反问题,java,Java,Java骰子游戏中的反问题完成后,您只调用一次Stats()方法,因此userWins++和userLoss++语句只调用一次。您应该将这些语句移动到disproduction()方法中,以便在每次游戏中调用它们。您已经在那里检查了(guess==dicesum),这就是问题所在。我可以看到两个问题: 问题1。 变量userWins、games和userLoss都是整数。所以除法将被视为整数算术。这将导致percentW和percentL变为0.0 提示:要强制使用浮点进行除法,请将其中一个或两

Java骰子游戏中的反问题

完成后,您只调用一次
Stats()
方法,因此
userWins++
userLoss++
语句只调用一次。您应该将这些语句移动到
disproduction()
方法中,以便在每次游戏中调用它们。您已经在那里检查了
(guess==dicesum)
,这就是问题所在。

我可以看到两个问题:

问题1。 变量
userWins
games
userLoss
都是整数。所以除法将被视为整数算术。这将导致
percentW
percentL
变为
0.0

提示:要强制使用浮点进行除法,请将其中一个或两个操作数转换为
double
。有没有教过你如何从一种基本类型转换成另一种

问题2。 变量的递增发生在
Stats
方法中。Stats方法只调用一次。因此,变量只增加一次

提示:如果
Stats
的目的是打印统计数据,那么您使用错误的方法增加分数


顺便说一下,在风格和其他方面存在一些问题:

  • 在Java中,方法名称不应以大写字母开头

  • 缩进不一致。我怀疑您在源文件中使用了制表符。如果将代码剪切并粘贴到标记中,则会出现问题。。。在其他情况下。例如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
    
    该评论(国际海事组织)有害。它没有说任何代码中不明显的东西。事实上,它真正做的只是分散读者的注意力

  • 这段代码应该是OO。您严重依赖
    static
    方法和
    static
    变量。(也许这是下一课……)


我必须包含一个Stats方法,因此我是否可以保持方法不变,但修复Stats()方法中的反问题,使其重复调用?我想您说过,只有在用户完成后才调用
Stats()
方法,这样您就不必重复调用它。只需更新您的
dispOutput()
方法,如下所示:
if(guess==dicesum){System.out.println(“您赢了!”;userWins++;}否则if(guess!=dicesum){System.out.println(“对不起!您输了!”;userLoss++;}
(很抱歉格式错误)我把变量设为double,但它对我的编码没有任何作用。一个人不能赢得半场比赛或打半场比赛等等。分区不是问题。当用户玩一个游戏时,程序运行正常,用户将1放入游戏中再次玩。再次播放后,程序不记得用户以前玩过游戏。请再次阅读我的答案。我不是说变量的类型。我说的是变量的类型。我说的是表达式的类型。任何缩进问题都是因为我不熟悉stacoverflow的格式。此外,我将解决括号问题,但我可以说,这并没有造成我在问题中提到的问题。这是我们的第二个作业,教授问了静态变量和方法。我不确定我是否理解你的问题。我的表达式与变量匹配。percentW和percentL不是0.0,它们给出了正确的值。在这种情况下,您向我们展示的代码与您正在运行的代码不同,对不起,但是(例如)Java integer算术中的
3/5
0
,您向我们展示的代码使用的是整数算术。您有什么问题?目前尚不清楚。请编辑您的问题以明确您的问题。您能把代码和作业放回原处吗?
    GuessNum(); //call GuessNum method