java - 假 boolean 值 = 真?

标签 java boolean

我在一本书中找到了这段代码,并在 Netbeans 中执行了它:

boolean b = false;
if(b = true) {
    System.out.println("true");
} else {
    System.out.println("false");
}

我只是不明白为什么这段代码的输出是真的, 任何人都可以请教我, 谢谢。

最佳答案

它缺少双等号。所以它是在进行赋值而不是相等比较(请记住,赋值的返回值是新值)。在大多数情况下,大多数类型不是 boolean 值这一事实意味着结果不是 boolean 值,因此对于 if 语句来说它变得非法,从而导致编译器错误。但是,由于此处的类型已经是 boolean 值,因此赋值结果为 boolean 值,因此安全检查失败。因此,b = true 意味着 b 被赋予值 true 并且这是由 if 返回和检查的值 语句。

关于java - 假 boolean 值 = 真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883502/

相关文章:

java - while 循环给出空异常指针并且不会进入

python - True 和 1 和 1.0 在 python 字典中被评估为相同

java - 如果为真,则反转 boolean 值

java - 如何检查 Java 中的 IF 语句中的方法是否返回 true 或 false?

grails - 使用 boolean 值捕获用户列表,spring security

java - 这些方法如何在不被调用的情况下被使用?

java - 无限循环遍历哈希表

java - 使用 python API 进行的训练作为 java API 中 LabelImage 模块的输入?

java - 在没有 Spring Boot 或 Maven/Gradle 的情况下编写 Spring Websocket 项目

java - 使用鼠标点击生成球