选b为什么。可以解释一下其他选项吗

img

img


在网上搜了一下,也没看懂是什么意思。if(x=0)的意思不就是代表这个条件是假的吗

=号是赋值操作,x=0是赋值不是判断,x=0赋值表达式的值永远都是0,作为if条件的话,永远为假。也就是只会执行y=2这一句,所以只有B是

if 里面是x=0,注意只有一个等于号,是赋值操作,即把0赋值给x;
就变成了if(x),if(x)的含义就是判断x是真还是假,为真执行 y=1,为假执行y=2。
x==0即是判断x是否为假,为假执行 y=2,故B选项正确。

x=0是个表达式
你可以直接理解为表达式的值是0,计算完表达式再把值赋值给x
其实也可以理解为表达式的值就是x,先执行x=0,再取x的值作为表达式的值
哪个先哪个后不影响结果。
那肯定不能选D,D不是刚好和题目相反的吗。
而只有B选项,最终y的值一定是2
而A和C,都没有明确x的值到底是什么,所以y的值不确定