<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                【51.1 循環的嵌套。】 大循環的內部又包含了小循環,稱為循環嵌套。生活中,循環嵌套的現象很常見,一年12個月,假設每個月都是30天(僅僅假設而已),1月份30天,2月份30天......11月份30天,12月份30,這里的年就是大循環,年內部的月就是小循環。一年12個月,大循環就是12次。一個月30天,小循環就是30次。用for語句來表達,大意如下: for(m=1;m<=12;m++) //大循環。一年12個月。這里的m看作月,代表一年12個月的大循環。 { for(d=1;d<=30;d++) //內嵌小循環。一月30天。這里的d看作天,代表一個月30天的小循環。 { } } 【51.2 循環嵌套的執行順序。】 例子如下: for(i=0;i<2;i++) //大循環 { 語句1; for(k=0;k<3;k++) //內嵌的小循環 { 語句2; } 語句3; } 上述例子中,帶i的for稱為大循環,帶k的for稱為小循環,單片機從大循環入口進來,由上往下執行,執行第1次大循環,先執行1次“語句1”,接著進入小循環,小循環要連續循環執行3次“語句2”才跳出小循環,之后執行1次“語句3”,然后再返回到大循環入口判斷i條件是否滿足,此時條件滿足,繼續執行第2次大循環,1次“語句1”,3次“語句2”,1次“語句3”,第2次循環結束后又返回到大循環入口判斷i條件,此時i已經等于2不再小于2了,因此條件不滿足,結束整個循環嵌套。上述執行的語句順序如下: 語句1; //第1次大循環開始 語句2; 語句2; 語句2; 語句3; 語句1; //第2次大循環開始 語句2; 語句2; 語句2; 語句3; 根據此順序,再看一個具體的程序例子: a=0; b=0; for(i=0;i<2;i++) //大循環 { a=a+1; //被執行了2次 for(k=0;k<3;k++) //內嵌的小循環 { b= b+1; //被執行了6次 } } 上述例子中,執行完程序后,a的值變成了2,b的值變成了6。重點分析b的變化,“b=b+1”在內嵌循環體里被執行了6次,6次從何而來?就是i乘以k等于6。這個乘法次數是循環嵌套一個很重要的特性。上述程序如果用while語句來實現,等效如下: a=0; b=0; i=0; //控制大循環的變量初始化 while(i<2) //大循環 { a=a+1; //被執行了2次 k=0; //控制小循環的變量初始化 while(k<3) //內嵌的小循環 { b= b+1; //被執行了6次 k=k+1; } i=i+1; } 【51.3 循環嵌套的常見用途---二維數組的應用。】 二維數組a\[2\]\[3\],它有6個變量,在沒有學for語句之前,如果要依次把每個元素單獨賦值清零真不容易,要寫6次賦值語句如下: a\[0\]\[0\]=0; a\[0\]\[1\]=0; a\[0\]\[2\]=0; a\[1\]\[0\]=0; a\[1\]\[1\]=0; a\[1\]\[2\]=0; 自從懂了for嵌套語句之后,可以讓同樣功能的代碼簡潔許多。上述代碼等效于如下: for(i=0;i<2;i++) //大循環 { for(k=0;k<3;k++) //內嵌的小循環 { a\[i\]\[k\]=0; } } 【51.4 循環嵌套的常見用途---大延時。】 單片機項目會經常會用到delay這個延時函數,大部分都是利用for循環來實現,小延時的函數往往不用嵌套,直接如下編寫: for(k=0;k<N;k++); 上述的N是控制循環次數,每次循環都要消耗單片機一點時間,如果N越大需要消耗的時間就越多,起到延時的作用。但是N所能取的最大值受它所定義的類型所限制,比如unsigned char類型最大范圍是255,unsigned int類型最大范圍是65535,unsigned long類型最大范圍是4294967295。如果要實現更大的延時怎么辦?就可以用for的循環嵌套,利用循環嵌套可以使得循環總次數進行乘法翻倍的放大,很容易編寫大延時的函數。比如: for(i=0;i<M;i++) //大循環 { for(k=0;k<N;k++); //內嵌的小循環 } 此時循環的次數是N乘以M的乘積。如果N和M都是unsigned long類型,就意味著最大循環次數是4294967295的平方,次數大到驚人。 【51.5 例程練習和分析。】 現在編寫一個循環嵌套的練習程序。 程序代碼如下: /\*---C語言學習區域的開始。-----------------------------------------------\*/ unsigned char a=0; //觀察這個數最后的變化 unsigned char b=0; //觀察這個數最后的變化 unsigned char c=0; //觀察這個數最后的變化 unsigned char i; //控制大循環體的條件判斷變量 unsigned char k; //控制內嵌小循環體的條件判斷變量 void main() //主函數 { for(i=0;i<2;i++) //大循環 { a=a+1; //被執行了2次 for(k=0;k<3;k++) //內嵌小循環 { b=b+1; //被執行了6次,也就是i乘以k,2乘以3等于6. } c=c+1; //被執行了2次 } View(a); //把第1個數a發送到電腦端的串口助手軟件上觀察。 View(b); //把第2個數b發送到電腦端的串口助手軟件上觀察。 View(c); //把第3個數c發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:2 十六進制:2 二進制:10 第2個數 十進制:6 十六進制:6 二進制:110 第3個數 十進制:2 十六進制:2 二進制:10 分析: 變量a為2。 變量b為6。 變量c為2。 【51.6 如何在單片機上練習本章節C語言程序?】 直接復制前面章節中第十一節的模板程序,練習代碼時只需要更改“C語言學習區域”的代碼就可以了,其它部分的代碼不要動。編譯后,把程序下載進帶串口的51學習板,通過電腦端的串口助手軟件就可以觀察到不同的變量數值,詳細方法請看第十一節內容。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看