java - 即使我将 boolean 值设置为自动为假,如果语句也不起作用

标签 java if-statement

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/

相关文章:

java - 内部类成员变量未正确分配

arrays - 在 bash 中循环遍历数组

java - 为 ${n} 类型和 {{coinsadded}} 类型的变量创建单一模式,以便可以在字符串中找到它

java - 在 fragment 中使用上下文

java - Vertx HttpClientRequest - 无法捕获超时异常

java - 如何阻止电子邮件通讯弹出窗口拦截点击?

ios - 在 alertView if 语句中调用 IBaction

javascript - 这看起来正确吗?

excel - CONCATENATE(IF()) - 如何简化当前的解决方案?

PHP 使用 OR 运算符检查多个值的值