如何跟踪java中的高分?

时间:2015-12-31 16:37:43

标签: java

Java程序的目的是在每次按下按钮时选择0到11之间的随机整数。如果整数为1或2,则总计为0.否则将整数添加到运行总计中。我已经完成了所有这些,但我无法弄清楚如何更新高分(它应该在达到更高分数时更新)。

public void update() { 
  int value = ((int)(Math.random() * (11 - 1 + 1) + 1)); 
  label1.setText("Value: " + value); 

  if (value < 3) { 
    total = 0; 
  } else {
    total = value + total;
  }

  label2.setText("Total: " + total); 

  if (highScore <= total) { 
    label3.setText("High Score: " + highScore); 
  }
}

但是我知道最后一部分不起作用,因为我没有对变量highScore做过任何事情。

4 个答案:

答案 0 :(得分:2)

if(highScore < total) 
 { 
  highScore = total;
  label3.setText("High Score: " + highScore); 
 } 

注意,我认为你想&lt;而不是&lt; =

答案 1 :(得分:2)

您必须在声明时初始化highScore = 0。获得highScore后,您应该使用新值更新highScore的值。

试试这个,

public void update() {

    int value = ((int) (Math.random() * 11 + 1));
    label1.setText("Value: " + value);

    if (value < 3) {
        total = 0;
    } else
        total = value + total;

    label2.setText("Total: " + total);

    if (highScore < total) {
        highScore = total;
        label3.setText("High Score: " + highScore);
    }
}

答案 2 :(得分:1)

在您首次声明时设置highScore = 0;

然后将此行添加到if语句

if (highScore <= total) {
    label3.setText("High Score: " + highScore);
    highScore = total;
}

答案 3 :(得分:0)

首先,您需要声明更新方法的highScore OUTSIDE。当您退出方法并在输入更新方法时再次创建时,highScore将被丢弃,因此它始终是您最初初始化它的内容。您必须将highScore初始化为您在计划中遇到的最低值。您最好的选择是使用Integer.MIN_VALUE

int highScore = Integer.MIN_VALUE;

public void update()
{
    ...
}

接下来,您需要测试总数是否高于highScore。如果总数较高,则将highScore更新为总数。注意:使用&lt;或者&lt; =取决于你,它不会改变highScore。这取决于你是否确定谁最后达到了高分(它看起来不像你在做),所以使用&lt;不会执行不必​​要的操作。

if (highScore < total) {
    label3.setText("High Score: " + highScore);
    highScore = total;
}