grass.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
pm = false;
if(pm=false){
drawGrassBlock(x1, y, Color.green, size, size2);
}
}
});
这是我的代码,无论出于何种原因,if 语句什么都不做......我将 boolean 值设置为 false 并告诉它在 if 语句内时打印一个字符串,但控制台不会返回任何内容,这意味着它不正确“进入”。我告诉它打印 boolean 值及其打印错误,所以请帮忙!
最佳答案
这是 if
中的赋值,而不是相等比较。来自 Java 语言规范的 15.26 赋值运算符部分:
At run time, the result of the assignment expression is the value of the variable after the assignment has occurred.
意味着 pm = false
的结果始终是 false
,因此永远不会进入 if
分支。
更改为:
if (false == pm) // or if (!pm)
关于java - 即使我将 boolean 值设置为自动为假,如果语句也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551549/