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做过任何事情。
答案 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;
}