相当于
x == 1 && y == 1 || z == 1
所以if 执行
下一行x = 0 y = 2 z= 2
x--==1 true x = 0
y++==1 true y=2
然后通过&&后结果为true那么||后面就不计算了
所以x=0 ,y =2 ,z =1
2楼的结果是对的,另外需要说的是如果if里面出现多个条件,并且&&和||同时存在的时候,最好用括号括起来,那样逻辑就更清晰,希望可以帮助你
x-- 这句代码的意思就是 x=x;x-1; 所以if判断时 x还没有进行加减运算 x=1
x=0 y=2 z=1
逻辑与(&&)与逻辑或(||)都是短路运算符,
逻辑与是当表达式一边为假了就判定为假,不再做后续判断;
逻辑或是当表达式一边为真了,就判定为真,不再进行后续判断。
因为&&的优先级大于||,所以判断里的语句就相当于(x-- == 1 && y++ == 1)|| z++==1
x-- == 1 为 true x变为0
y++ == 1 为 true y变为2
所以(x-- == 1 && y++ == 1)为true
后面是或 || 运算,所以 z++==1不执行 z还是1
整个判断为true,执行if语句,即执行System的语句。
另外建议楼主,实践是检验真理的唯一标准,自己可以把代码打一下运行一下,也可以调试看变量的值的变化。