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;
} 展开
#include <iostream.h>
void main()
{int num=2,i=6;
do
{i--;
num++;
}while(--i);
cout< <num< <endl;
} 展开
4个回答
展开全部
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、、、)再运行这个程序你会发现程序是无限循环的即通常所说的刷屏,不信你可以就这个程序试试
然后执行第三次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、、、)再运行这个程序你会发现程序是无限循环的即通常所说的刷屏,不信你可以就这个程序试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先执行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)
然后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)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
do while 循环是先执行一次循环,在判断是否满足while的条件。这里循环停止条件就是看i什么时候变成0!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询