我不知道为什么,但是我在这里的if / else语句工作不正确。它在给定条件下工作。
public class MainActivity extends AppCompatActivity {
private int rand1;
private int rand2;
private int points;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
points=0;
pickRandomNumbers();
}
private void pickRandomNumbers()
{
Random randy = new Random();
int rand1 = randy.nextInt(10);
int rand2 = randy.nextInt(10);
Button lbutt = (Button) findViewById(R.id.left_button);
lbutt.setText(Integer.toString(rand1));
Button rbutt = (Button) findViewById(R.id.right_button);
rbutt.setText(Integer.toString(rand2));
}
public void leftButtonClick(View view) {
if (rand1 >= rand2){
points++;
} else {
points--;
}
TextView tv = (TextView) findViewById(R.id.points_fields);
tv.setText("Points: " + points);
pickRandomNumbers();
}
public void rightButtonClick(View view) {
if (rand2 >= rand1){
points++;
} else {
points--;
}
TextView tv = (TextView) findViewById(R.id.points_fields);
tv.setText("Points: " + points);
pickRandomNumbers();
}
}
当rand1大于rand2时,它应该增加点数;当rand1小于rand2时,它应该减少点数,但它只是不断地增加点数。
当我将
rand1>=rand2
更改为rand1>rand2
时,只会减少分数。两个按钮功能都发生了相同的情况。请帮助我理解这一点。 最佳答案
在类的顶部声明两个全局变量rand1
和rand2
。稍后,您再次声明两个具有相同名称的变量。 Java将此代码视为有效代码,因为前两个可以引用为this.rand1
和this.rand2
。当您只想创建一次变量时,您将创建两次变量。
如果在第二个声明之前删除int
,应该没问题。