A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 謝寶劍 初级黑马   /  2012-3-17 17:17  /  2068 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x=1,y=10;
do{
    if(x++>--y)
    continue;
}while(x<5);
运行后为什么x=5;y=6;

3 个回复

倒序浏览
你认为是不是4,6?其实在这个时候 ,是这样理解的。但是马上x++还有一步要执行,就是自身还要加一次1,所以是5,6.
回复 使用道具 举报
do{...}while{...}就是无论while条件成立否,do都会执行一次的。x++>y--,首先是1>9,然后x为2,接着2>8,x为3,然后3>7,x为4,然后4>6,x为5,结束循环,因为while里面是x<5,所以循环结束,x的值为5,y的值为6

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
你应该弄明白 x++ 和--y的区别

x++  --y
1         9
2         8
3         7
4         6
5         5 执行到这里的时候不成立,但是此时的y还是6 因为--y之后才是5 条件不成立,所以就不会减到5再判断 所以还是6

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马