下面程序片段输出的结果是
int m=7, n=1;
do{
if(m--<++n) break;
}while(m>4);
System.out.println("m ="+m+" n="+n);
A、m=3 n=5
B、m=4 n=4
C、m=4 n=5
D、m=5 n=3
【正确答案】:B
【名师解析】:首先,程序初始化两个变量m和n,分别为7和1。接着进入do-while循环,循环体内部首先判断m--<++n,即先判断m是否小于n,然后m减1,n加1。由于m初始值为7,n初始值为1,所以第一次循环不满足if条件,不会执行break,继续执行循环。 在第一次循环中,m减1变为6,n加1变为2。此时再次判断m--<++n,m变为5,n变为3,仍然不满足条件,继续循环。 在第二次循环中,m减1变为4,n加1变为4。此时m--<++n变为3<5,不满足条件,继续循环。 在第三次循环中,m减1变为3,n加1变为5。此时m--<++n变为2<6,满足条件,执行break跳出循环。 循环结束后,m的值为3,n的值为5。但题目中给出的答案是B,即m=4,n=4,这与实际执行结果不符。正确的答案应该是m=3,n=5。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部