能讲解一下为什么这个程序的运行结果是这样吗
1个回答
展开全部
①x=y=z=0; ++x||++y||++z;
由于++x为1,或运算++x||++y的结果一定为1,不再计算++y,直接返回1。这种特性称为短路运算。同理,1||++z的结果一定为1,不再计算++z,直接返回1。最终x=1,y=0,z=0。
②x=y=z=0;++x&&++y||++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1||++z结果一定为1,不再计算++z,直接返回1。最终x=1,y=1,z=0。
③x=y=z=0;++x&&++y&&++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1&&++z,继续计算++z,结果也为1,所以整个表达式返回1。最终x=1,y=1,z=1。
④x=y=z=0;++x||++y&&++z;
&&优先级高于||,所以表达式相当于++x||(++y&&++z)。由于++x为1,或运算++x||(++y&&++z)的结果一定为1,不再计算++y&&++z,直接返回1。最终x=1,y=0,z=0。
由于++x为1,或运算++x||++y的结果一定为1,不再计算++y,直接返回1。这种特性称为短路运算。同理,1||++z的结果一定为1,不再计算++z,直接返回1。最终x=1,y=0,z=0。
②x=y=z=0;++x&&++y||++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1||++z结果一定为1,不再计算++z,直接返回1。最终x=1,y=1,z=0。
③x=y=z=0;++x&&++y&&++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1&&++z,继续计算++z,结果也为1,所以整个表达式返回1。最终x=1,y=1,z=1。
④x=y=z=0;++x||++y&&++z;
&&优先级高于||,所以表达式相当于++x||(++y&&++z)。由于++x为1,或运算++x||(++y&&++z)的结果一定为1,不再计算++y&&++z,直接返回1。最终x=1,y=0,z=0。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询