1
grass.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
    pm = false;
    if(pm=false){
    drawGrassBlock(x1, y, Color.green, size, size2);
    }
    }
});

这是我的代码,无论出于何种原因,if 语句什么都不做......我将布尔值设置为 false,并告诉它在 if 语句中打印一个字符串,但控制台不会返回任何内容,这意味着它没有正确“进入”。我告诉它打印布尔值及其打印错误,所以请帮忙!

4

2 回答 2

2

if(pm == false)

代替

if(pm = false)

使用单=将设置pmfalse
使用双==pmfalse

于 2012-05-11T12:44:03.013 回答
2

那是 中的赋值if,而不是相等比较。从Java 语言规范的第15.26 节赋值运算符:

在运行时,赋值表达式的结果是赋值发生后变量的值。

意思pm = false是总是的结果false,所以if永远不会进入分支。

改成:

if (false == pm) // or if (!pm)
于 2012-05-11T12:44:06.757 回答