·

为什么 if (b = true) 分支会执行?

因为这是一个赋值语句,不是比较表达式。赋值语句将 b 的值置为 true,并返回 b,因此进入该分支。

你想要的是 if (b == true),当然,使用 if (b) 更好 relieved