![](/img/trans.png)
[英]Why Is assertThat Not Functioning Correctly When Checking For String Equality?
[英]Why is this if statement not functioning correctly
public void chooseLane() {
int lane = MathUtils.random(1, 3);
System.out.println(lane);
spawnCar();
}
public void spawnCar() {
if(lane == 1){
batch.begin();
batch.draw(carsb, 0, 0);
batch.end();
System.out.println("testing");
}
在chooseLane()
它打印出Lane的int(设置为random并每秒打印一次,未显示),但是当lane == 1
它不会完成spawnCar方法。 有什么帮助吗?
在chooseLane()
方法之外声明lane
变量。 chooseLane()
,您将lane
变量声明为chooseLane()
局部变量,这就是为什么在chooseLane()
方法之外无法访问它的原因。
int lane;
public void chooseLane() {
lane = MathUtils.random(1, 3);
System.out.println(lane);
spawnCar();
}
public void spawnCar() {
if(lane == 1){
batch.begin();
batch.draw(carsb, 0, 0);
batch.end();
System.out.println("testing");
}
}
那是因为您有可变lane
不同实例
int lane = MathUtils.random(1, 3);
这里的lane
正在重新定义。 只需从该行中删除int
。
您在chooseLane
中设置的lane
与您在spawnCar
中进行比较的lane
不相同。 您可以向spawnCar添加参数,避免保留lane
类成员
public void spawnCar(int lane) {
if(lane == 1){
batch.begin();
batch.draw(carsb, 0, 0);
batch.end();
System.out.println("testing");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.