如果语句带有变量且没有表达式

时间:2018-04-15 15:05:26

标签: java if-statement expression

我在观看Java pong游戏教程视频时遇到了这些if语句:

boolean upAccel, downAccel;
double y, velY;

public HumanPaddle() {
   upAccel = false; downAccel = false;
}

public void setUpAccel(boolean input) {
   upAccel = input;
}
public void setDownAccel(boolean input) {
   downAccel = input;
}

// moves the paddle
public void move() {

   /* What does the 'if(upAccel){ }' expression do..? */
   if(upAccel) {
      velY -= 1; 
   }
   if(downAccel) {
      velY += 1;
   }
   y = y + velY;
}

所以我理解setUpAccelsetDownAccel方法接受布尔值input,它可以是true或false。但是,我尝试了if语句 - 并将if(upAccel)更改为if(upAccel = true)。 Java并没有将表达看作同一个东西,所以我意识到这两个表达式是不同的!

我的问题是,if(upAccel)表达式测试了什么?

2 个答案:

答案 0 :(得分:1)

/* What does the 'if(upAccel){ }' expression do..? */
   if(upAccel) {
      velY -= 1; 
   }

它将评估为true可以重写为

/* What does the 'if(upAccel){ }' expression do..? */
   if(upAccel==true) {
      velY -= 1; 
   }

答案 1 :(得分:0)

语句(upAccel)检查条件是否为真,然后继续执行velY -=1(upAccel)(upAccel == true)相同。 downAccel也是如此。