展开全部
&&和||分别是短路与、短路或。
表达式a && 表达式b 时,若表达式a则该逻辑表达为假,式整体为假,就不再去算表达式b的值;若表达式a为真,则继续算表达式b的值,然后再整体判断逻辑表达式的结果是真是假。
表达式a || 表达式b时,若表达式a为真,则该逻辑表达式整体为真,就不再去算表达式b的值;若表达式a为假,则继续算表达式b的值,然后再整体判断逻辑表达式的结果是真是假。
所以,对于((j++ || k++)&& i++),
先算(j++ || k++)这个表达式的值,而要算这个表达式的值,则先算 j++ 这个表达式的值(注意,由于++在j后面,所以实际上算的是j的值,等算完j的值之后,再执行j=j+1,也因此,输出时j的值加1),由于j=1,所以表达式为真,所以(j++ || k++)整体肯定为真,就不再计算k++的值(这也就是为什么输出时k的值没有加1的原因)。
由于(j++ || k++)为真,所以对于&&运算,还需要继续算 i++的值(所以,最后的i的值要+1),由于i=1,所以((j++ || k++)&& i++)值为1 ,所以if条件成立,执行条件体,即打印i,j,k的值。
因此,最终的结果就是 i 和j的值都加1,而k的值不变。选C
表达式a && 表达式b 时,若表达式a则该逻辑表达为假,式整体为假,就不再去算表达式b的值;若表达式a为真,则继续算表达式b的值,然后再整体判断逻辑表达式的结果是真是假。
表达式a || 表达式b时,若表达式a为真,则该逻辑表达式整体为真,就不再去算表达式b的值;若表达式a为假,则继续算表达式b的值,然后再整体判断逻辑表达式的结果是真是假。
所以,对于((j++ || k++)&& i++),
先算(j++ || k++)这个表达式的值,而要算这个表达式的值,则先算 j++ 这个表达式的值(注意,由于++在j后面,所以实际上算的是j的值,等算完j的值之后,再执行j=j+1,也因此,输出时j的值加1),由于j=1,所以表达式为真,所以(j++ || k++)整体肯定为真,就不再计算k++的值(这也就是为什么输出时k的值没有加1的原因)。
由于(j++ || k++)为真,所以对于&&运算,还需要继续算 i++的值(所以,最后的i的值要+1),由于i=1,所以((j++ || k++)&& i++)值为1 ,所以if条件成立,执行条件体,即打印i,j,k的值。
因此,最终的结果就是 i 和j的值都加1,而k的值不变。选C
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询