黑马程序员技术交流社区
标题:
求教一个 if语句里的问题
[打印本页]
作者:
离渊
时间:
2014-3-10 22:24
标题:
求教一个 if语句里的问题
本帖最后由 离渊 于 2014-3-11 08:57 编辑
int x = 1,y = 1;
if(x++==2 && ++y==2) {
x =7;
}
printf("x=%d, y=%d\n", x, y);
结果为 x =2 y=1 想不通 求分析···
作者:
张海龙重新起航
时间:
2014-3-10 22:37
本帖最后由 张海龙重新起航 于 2014-3-10 22:48 编辑
x=x+1=2,y=y=1
作者:
z82454642
时间:
2014-3-10 22:38
本帖最后由 z82454642 于 2014-3-10 22:40 编辑
你用的时if语句,程序运行到if语句时先判断x是否等于2,然后x+1。这时条件不成立程序直接跳到printf输出了所以x=2,y=1
作者:
Silent_memory
时间:
2014-3-10 22:53
&& 逻辑运算符,也可看作是短路运算
if 的条件中首先判断x++ 是否等于2 ,如果等于2 才会继续判断 运算符后面的 ++y;
你条件中 x++ 等于2 的判断不成立 ,仅仅是把 x 加一操作,并没有在执行 ++y 也就是 ++y 被短路了。
所以结果就是 x =2 y=1
作者:
离渊
时间:
2014-3-11 08:56
恍然大悟状 ( ¯ □ ¯ ) 谢谢各位解答
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2