C++中do while语句

想问一下,这道题目是怎么解出来的,能具体讲一下吗?#include<iostream.h>voidmain(){intnum=2,i=6;do{i--;num++;}wh... 想问一下,这道题目是怎么解出来的,能具体讲一下吗?
#include <iostream.h>
void main()
{int num=2,i=6;
do
{i--;
num++;
}while(--i);
cout< <num< <endl;
}
展开
 我来答
寂寞sandy哭泣
2009-12-03 · TA获得超过140个赞
知道答主
回答量:109
采纳率:0%
帮助的人:0
展开全部

#include <iostream.h>

 void main()

 {int num=2,i=6;//定义 变量

  do         //do while() 构建的循环

 {i--;       //i 自减

  num++;     //num 自加

  }while(--i); //--i>0 继续循环  先自减 再判断

cout<<num<<endl;

}

zblyf
2009-12-03 · TA获得超过186个赞
知道答主
回答量:100
采纳率:0%
帮助的人:69.8万
展开全部
do语句总共循环3次,第一次执行DO语句,遇i--此时i值变为5,num值变为3,i遇到while(--i)值变为4,然后执行第二次DO语句,遇i--i值变为3,num值变为4,又遇到while(--i);i值此时变为2
然后执行第三次DO语句,遇i--i值变为
1,num增到5,当遇到while(--i)时,i值变为0此时结束循环,即结束程序,所以程序输出值为5,此时i值为0,不信可以在最后面加个语句输出i的值看看是否为0
#include <iostream.h>
void main()
{int num=2,i=6;
do
{i--;
num++;
}while(--i);
cout<<num<<endl;
cout<<i<<endl;
}
需要提醒你的是当条件while(--i);括号中的值为0或内部的循环条件遇0时就终止循环,你可以把括号中的--i换为0试一下,你会发现程序只运行一次,输出的num值是3,i值为5
好了,讲到这里我想你应该明白了
还跟你讲深一点,这是、C++中while的一个潜规则,如果在while()条件中,括号里面是个大于0的常数值(比如1,2,3、、、)再运行这个程序你会发现程序是无限循环的即通常所说的刷屏,不信你可以就这个程序试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小Tu
2009-12-03 · 超过33用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:80.1万
展开全部
先执行i--,i就变成了5,num=3;
然后while里,--i,i就变成了4,符合条件,继续执行whil语句;
i--,后i=3,num=4;
然后while里,--i,i=2;符合条件,继续执行while
i--,i=1,num=5;
然后while里,--i,i=0;不符合条件,退出while。
所以num=5。
//注意:
int i=5,a,b;
a=++i;
(这时a=6,i=6)
b=i++;
(这时b=6,i=7)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lfw889632
2009-12-03 · 超过10用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:0
展开全部
do while 循环是先执行一次循环,在判断是否满足while的条件。这里循环停止条件就是看i什么时候变成0!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式