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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jason996 中级黑马   /  2014-12-15 23:34  /  1504 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下列语句序列执行后,i的值是(    )。 [这是今天的测试题目,我通程序执行显示的就是BCD的答案,但正确答案确实D,为啥?]
int i=16;
do {
i/=2;
} while( i > 3 );
A. 16
B. 8
C. 4
D. 2

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 淡定

查看全部评分

10 个回复

倒序浏览
首先是i初值为16。接着进行do-while循环操作,
第一次循环结束后i=8,判断,8>3,继续循环
第二次结束,i=4,判断4>3,继续循环
第三次结束,i=2,判断2<3,条件不成立
结束循环
所以i值为2.
回复 使用道具 举报
答案就是D,这个楼上已经写的很清楚了,可能是你把输出语句写错位置了把
回复 使用道具 举报
二楼是对的,楼主也是对的,但是你说的是每次i变化的值
回复 使用道具 举报
涨姿势了,最后i的值是2,哦哦。
回复 使用道具 举报
来迟了,二楼分析的很透彻,我只有默默的赞一个了
回复 使用道具 举报
D 啊 看条件就知道了
回复 使用道具 举报
应该是输出语句写错地方了
回复 使用道具 举报
i的值依次是:8  4 2然后跳出循环
回复 使用道具 举报
i的值最后循环完以后是2,  你应该是输出语句写到循环里了
回复 使用道具 举报
。。i=2,do while和while do的却别就是do while至少要执行一遍do里边的语句,然后再判断条件,符合就继续,不符合就结束循环。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马