【问题标题】:How do I keep on adding to the total of my variable [closed]我如何继续增加我的变量总数[关闭]
【发布时间】:2022-01-10 18:57:08
【问题描述】:

我目前正在开展一个涉及骰子游戏的项目,您可以在其中单击“掷骰”,骰子会生成数字并将其列在 JTextArea 上并添加到下面的总数中。

当用户得到 3 时,总数变为 0。

我的问题是,当按“滚动”时,总数不会每次都添加滚动的数字,而是显示当前滚动的数字。

JButton roll=new JButton("Roll");
roll.setBounds(900,750,75,30); 
roll.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        String command = e.getActionCommand();
        if (command.equals ("Roll")){
               
            int player1score = 0;
            int player2score = 0;
            int total = 0;
            int total2 = 0;

            Integer dice=(int)(Math.random()*6+1);

            if (dice==1 || dice==2 || dice==4 || dice==5 || dice==6) { 

                area1.append(String.valueOf(dice + "\n"));

            } else if(dice==3) {  

                dice = 0;
                total = 0;
                area1.setText(String.valueOf(total + "\n"));
                totalbox1.setText(String.valueOf(total + "\n"));

            }

        total = total + dice;
        totalbox1.setText(String.valueOf(total2));

        }
    }
});

【问题讨论】:

  • 如果我理解正确:total 是一个应该累积滚动的变量。如果是,这应该超出 lambda 的范围。在您的代码中,total 是局部变量,每次都初始化为 0。
  • 请参阅minimal reproducible example 并相应地增强您的问题。含义:向我们展示您班级的相关部分。我猜你的total 信息有shadowing 的问题。看起来您的类中有一个具有该名称的 field,并且该方法中还有一个 local 变量。真的不清楚这里应该如何工作,
  • 对于exampleexample,您需要花时间了解本地和实例字段/变量之间的区别

标签: java swing


【解决方案1】:

您在 if 语句的开头将 total 重置为 0。所以每次你点击 roll 时,int total = 0; 行就会被触发,最后你将 'dice' 添加到 'total' ,这将始终返回 dice。

您应该在 if 语句之外初始化变量。

【讨论】:

  • 问题中没有循环
  • 已编辑谢谢,点数表示,当他点击滚动时,总数重置为 0
  • 对。这解决了问题,但解决方法是什么?
  • 一个带有 JText 面板的骰子游戏对我来说听起来像是家庭作业/学校项目,以为我们不允许给他们答案,他应该在语句之外初始化变量。如果我对这些规则有误,我会在上面更新我的答案,谢谢。
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多