我在一本书中找到了这段代码,并在 Netbeans 中执行了它:
boolean b = false;
if(b = true) {
System.out.println("true");
} else {
System.out.println("false");
}
我只是不明白为什么这段代码的输出是正确的,
任何人都可以启发我吗,
谢谢。
它缺少双等号。因此,它执行的是赋值而不是相等比较(请记住,赋值的返回值是新值)。在大多数情况下,大多数类型都不是布尔值这一事实意味着结果不是布尔值,因此对于if
语句,导致编译器错误。然而,由于这里的类型已经是布尔值,因此赋值结果是布尔值,因此安全检查失败。因此,b = true
意思是b
被赋值true
这是返回并由if
陈述。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)