Java 中赋值表达式的返回值

起因

写代码的时候脑子里想着

如果 flag = true 则 do something …

于是手上跟着敲出

1
2
3
if (flag = true) {
// do something ...
}

编译器没有报错,当时思想走神也丝毫没有发觉这是一段弱智代码,调试的时候发现 if 里的语句每次都执行了,觉得不太对劲,然而仍然没有发现这段弱智代码有问题,本着格物致知的精神格了几分钟才发现这段代码应该是:

1
2
3
if (flag) {
// do something ...
}

瞬间觉得自己宛如智障

阅读更多