找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5496|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

新手學(xué)51單片機(jī)弄不懂for嵌套循環(huán)的流程,請各位大神們幫我分析分析!感謝了!

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:404479 發(fā)表于 2018-10-1 14:56 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是一個延時的子函數(shù),我就搞不懂兩個for組成的嵌套循環(huán)的流程是怎么執(zhí)行的,我的理解是,當(dāng)a=200,a<0時,那么a-1,那么a=199了,由于第一個for后面沒有分號,那么第二個for也會跟著執(zhí)行,也就是b-1,還有1999,相當(dāng)于a要減去200次,b要減去2000次,那么這樣的話用兩個for就沒有意義了呀,何必只用一個for,設(shè)為for(a=2200;a<0;a--);    為何還要用兩個for呢?我知道我的理解有錯誤,郭天祥解釋的是當(dāng)a減一次,那么b就要減2000,他說相當(dāng)于200*2000次這么多,為什么會這樣?讓我非常不能理解,請教各位幫我分析一下嵌套for循環(huán)的執(zhí)行流程,小弟是新手,望各位說得通俗易懂一點,謝謝

Screenshot_20181001-145459.png (19.96 KB, 下載次數(shù): 64)

Screenshot_20181001-145459.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:164602 發(fā)表于 2018-10-1 18:28 | 只看該作者
你的程序,相當(dāng)于這樣:
vid delay
{
    unsigned int a,b;
    for (a=200;a>0;a--)
    {
        for (b=2000;b>0;b--)
        {
        }
    }
}
你的程序中,循環(huán)條件錯了。。。!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:386381 發(fā)表于 2018-10-1 18:55 來自觸屏版 | 只看該作者
小的數(shù)值容易計算,太大的數(shù)值不容易計算個人理解

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:157238 發(fā)表于 2018-10-1 20:08 | 只看該作者
1.實際的執(zhí)行就是20*2000次,第一個for循環(huán)執(zhí)行一次之后第二個for循環(huán)執(zhí)行2000次。
2.當(dāng)?shù)谝粋for循環(huán)a-1之后,后面沒有分號,程序接著向下執(zhí)行第二個for循環(huán),執(zhí)行完一次b-1之后,b=1999仍然滿足條件則繼續(xù)執(zhí)行b-1的操作,直至減到b=0結(jié)束第二個for循環(huán)然后繼續(xù)執(zhí)行第一個for循環(huán)。
3.還有你的for循環(huán)應(yīng)該是for(a=200;a>0;a--)for(b=2000;b>0;b--);
4.你的for循環(huán)相當(dāng)于for(a=200;a>0;a--)這樣。
                             {
                                for(b=2000;b>0;b--);
                              }

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:277550 發(fā)表于 2018-10-1 20:46 | 只看該作者
執(zhí)行的次數(shù),就是a 的初值x b的初值


這是C語言的知識
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:387733 發(fā)表于 2018-10-1 20:50 | 只看該作者
第一個for語句后面沒有分號,所以緊接在下面的語句就是上面一句的循環(huán)體。
如果寫完整加上花括弧就好理解了:(a<0,b<0是錯的,應(yīng)該是 a>0,  b>0))

     for(a=200; a>0; a--)
    {
        for(b=2000; b>0; b--)
        {
            ;
        }
    }

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:398663 發(fā)表于 2018-10-1 21:02 | 只看該作者
是200個2000次也就是40w次

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:130231 發(fā)表于 2018-10-1 22:51 | 只看該作者
實在不懂用這軟件試試,方便好用。不懂的可以加我。

單片機(jī)精靈.zip

678.43 KB, 下載次數(shù): 11

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

9#
ID:404479 發(fā)表于 2018-10-2 07:16 來自觸屏版 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-10-1 18:28
你的程序,相當(dāng)于這樣:
vid delay
{

謝謝糾正!
回復(fù)

使用道具 舉報

10#
ID:404479 發(fā)表于 2018-10-2 07:18 來自觸屏版 | 只看該作者
le51 發(fā)表于 2018-10-1 20:08
1.實際的執(zhí)行就是20*2000次,第一個for循環(huán)執(zhí)行一次之后第二個for循環(huán)執(zhí)行2000次。
2.當(dāng)?shù)谝粋for循環(huán)a-1 ...

謝謝你的指導(dǎo),我弄懂了!
回復(fù)

使用道具 舉報

11#
ID:404479 發(fā)表于 2018-10-2 07:18 來自觸屏版 | 只看該作者
zqy181818 發(fā)表于 2018-10-1 22:51
實在不懂用這軟件試試,方便好用。不懂的可以加我。

感謝你的分享!
回復(fù)

使用道具 舉報

12#
ID:404479 發(fā)表于 2018-10-2 07:19 來自觸屏版 | 只看該作者
grizzly 發(fā)表于 2018-10-1 21:02
是200個2000次也就是40w次

謝謝你
回復(fù)

使用道具 舉報

13#
ID:404479 發(fā)表于 2018-10-2 07:19 來自觸屏版 | 只看該作者
sxhwdz 發(fā)表于 2018-10-1 20:50
第一個for語句后面沒有分號,所以緊接在下面的語句就是上面一句的循環(huán)體。
如果寫完整加上花括弧就好理解 ...

謝謝你
回復(fù)

使用道具 舉報

14#
ID:402431 發(fā)表于 2018-10-2 09:45 | 只看該作者
for循環(huán):
a;
for(1 .參數(shù)初始化;2 .條件判斷;3. 更新循環(huán)變量(對參數(shù)進(jìn)行操作))
{ 循環(huán)操作;}
b;

for語句的執(zhí)行流程:
    先計算 1 的值.
    再計算 2 的值,判讀:為真(1),繼續(xù)執(zhí)行循環(huán)操作;為假(0),跳出循環(huán)執(zhí)行 b.
    循環(huán)語句執(zhí)行后,計算 3 的值,再計算 2 的值,判讀:為真(1),繼續(xù)執(zhí)行循環(huán)操作;為假(0),跳出循環(huán)執(zhí)行 b.

a->1->2->循環(huán)操作->3->2->循環(huán)操作->3->2->……->循環(huán)操作->3->2(為假,不成立(0))->b……

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

15#
ID:404820 發(fā)表于 2018-10-2 11:39 | 只看該作者
先學(xué)c語言了解for循環(huán)

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表