do while循环嵌套的问题 20
voidDelay100ms()//@11.0592MHz{unsignedchari,j,k;i=5;j=52;k=195;do{do{while(--k);}whil...
void Delay100ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
这是单片机的一段延时函数,用的STC下载软件自动生成的,但是里面的循环完全没看懂,我想问一下,多个do while 和while嵌套循环时,程序的执行方式是怎么样的?
请问,这个循环中大约执行了多少条语句?
如果最里层的循环第一次结束了,那么变量k不就为0了,以后执行的时候最里层的循环不就不执行了?
如果改为for循环,每次循环最里层的循环都会有赋初值,但是dowhile没有赋初值? 展开
{
unsigned char i, j, k;
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
这是单片机的一段延时函数,用的STC下载软件自动生成的,但是里面的循环完全没看懂,我想问一下,多个do while 和while嵌套循环时,程序的执行方式是怎么样的?
请问,这个循环中大约执行了多少条语句?
如果最里层的循环第一次结束了,那么变量k不就为0了,以后执行的时候最里层的循环不就不执行了?
如果改为for循环,每次循环最里层的循环都会有赋初值,但是dowhile没有赋初值? 展开
展开全部
循环就是一个语句而已,如果循环里面还有循环,就等里面的循环结束了,继续外面的循环。
追问
那么请问,这个循环中大约执行了多少条语句?
如果最里层的循环第一次结束了,那么变量k不就为0了,以后执行的时候最里层的循环不就不执行了?
如果改为for循环,每次循环最里层的循环都会有赋初值,但是dowhile没有赋初值?
追答
最里层的循环每次结束时,k 确实为 0 了,但你要注意,while 的判断表达式是 --k,就是说,判断的值是 k 先减了 1 的值。所以下一次再进入循环时,虽然 k 为 0,但判断之前先减 1,就不为 0 了,而为 0 - 1 等于 -1,换算为无符号数是 255。
可以这样说,如果循环的判断变量(i,j,k)如果在进入循环前的值为 0,那么循环执行 256 次,如果循环变量是两字节的(int,unsigned int),那么循环执行 65536 次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Do While Not RSn.Eof Do While RSn("log_cstitle")=true Do While RSn("log_jctitle")=true 这样啊?? 没见过 ,高啊 搞一个循环 Do While Not RSn.Eof and RSn("log_cstitle")=true and RSn("log_jctitle")=true ............ loop 或者 Do While Not RSn.Eof ................ RSn.Movenext row=row+1 if row=10 then Exit do end If loop Do While RSn("log_jctitle")=true ............... Loop
追问
请说中文= =
看不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询