设有说明 intx=0,y=0;则执行if(x++)y=1+x;elsey=2+x;后,变量y的值是?具体算法是?

问题描述:

设有说明 intx=0,y=0;则执行if(x++)y=1+x;elsey=2+x;后,变量y的值是?具体算法是?

y=3
x++表示“先用后加”
if(x++)y=1+x; 因为x=0 ,所以这一步跳过,但是执行完这一步,x变为1
elsey=2+x;成立,y=2+x被执行,所以y=3为什么x=0时 这一步跳过啊实际上应该写成if(x++==1)y=1+x; 但是就算法而言。一般 0 被当作false ,而非0被认为是 true我在我本机上用java测试,public class test{public static void main(String[] arg){int x=0 , y= 0 ;if(x++ = 1) y=1+x;else y=2+xSystem.out.println("y=" + y) ; }}