java条件判断布尔值的对错输出

为什么选C,如果b是true的话,不应该在else if(b)就输出吗

img

在第二行代码中,if(b = false) 这个判断条件中 用的是赋值符号=, 而不是逻辑判断符号==。所以这个判断条件的布尔值为赋值符号的返回值false,无法进入打印a的代码块,同时这个赋值符号将b的值改成了false,所以第二个判断条件if(b)也不能满足,无法进入打印b的代码块。遇到第三个判断条件才满足,所以打印C

因为在第一个if b=false,
所以b变成了false