我在一本书中找到了这段代码,并在 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/