<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                【48.1 程序的“跑道”。】 經常聽到這句話“程序跑起來了嗎?”,程序在哪里跑?有跑道嗎?有的。循環語句就像一條橢圓的跑道,程序在跑道上不停的跑,不知疲倦的跑,永無止境,一秒鐘幾百萬圈的速度。單片機的main主函數內往往有一條while(1)語句,這就是單片機的“循環跑道”,稱之為主循環,主循環內還可以繼續嵌套多層while循環語句。 【48.2 while循環的常見格式。】 常見格式如下: while(條件) { 語句1; 語句2; …… 語句N; } 語句N+1; 上面的“花括號內”稱為“循環體內”,“花括號外”稱為“循環體外”,現在來分析一下上述代碼的執行規律,如下: (1)像if語句一樣,先判斷while的(條件)是否為真。如果為“假”,就不執行循環體“內”的“語句1”至“語句N”,直接跳到循環體“外”的“語句N+1”處開始往下執行。如果為“真”,才執行循環體“內”的“語句1”至“語句N”,當執行完循環體“內”最后的“語句N“時,單片機會突然返回到第一行代碼“while(條件)”處,繼續判斷循環的(條件)是否為真,如果為假就跳到循環體“外”的“語句N+1”,表示結束了當前循環。如果為真就繼續從“語句1“執行到“語句N“,然后再返回while(條件)處,依次循環下去,直到條件為假時才罷休,否則一直循環下去。 (2)while(條件)語句中,條件判斷真假的規則跟if語句一模一樣,有兩種類型:一種是純常量或者變量類型的,只要此數值不等于0就認為是真,所以while(1)也稱死循環語句,因為里面的條件永遠不為0。對于死循環這樣的語句,如果不遇到break,return,goto這些語句,那么就永遠也別想跳出這個循環;另外一種是關系判斷,以及關系語句之間的像“與或”關系這類的判斷。這些條件判斷的真假,跟if語句的規則是一樣的,這里不再多講。break,return,goto這些語句后面章節會講到。 【48.3 while省略花括號,沒帶分號。】 while(條件) 語句1; 語句2; …… 語句N; 語句N+1; 上面的代碼,居然沒有了花括號,問題來了,此循環語句的“有效射程”究竟是多遠,或者說,此循環語句的循環區域在哪里。現在跟大家解開這個謎團。第一行代碼,while(條件)后面“沒有分號”,接著第二行就是“語句1”,所以,這種情況跟if語句省略花括號的寫法是一樣的,此時循環體默認只包含離它最近的一條且僅僅一條的“語句1”,因此,上述的語句,等效于下面這種添加花括號的寫法: while(條件) { 語句1; } 語句2; …… 語句N; 語句N+1; 【48.4 while省略花括號,帶分號。】 while(條件); 語句1; 語句2; …… 語句N; 語句N+1; 這次的代碼跟剛才“48.3”的代碼唯一的差別是,第一行代碼,while(條件)后面“有分號”。所以它循環的有效范圍就在第一行就結束了,不涉及“語句1”。此時,等效于下面這種添加花括號的寫法: while(條件) { ; //這里的分號代表一條空語句 } 語句1; 語句2; …… 語句N; 語句N+1; 如果while的(條件)一直為“真”,單片機就一直在循環體內執行一條“無意義”的空語句,相當于“耗著”的狀態,執行不到后面“語句1”的語句,除非,條件為“假”才罷休才會跳出循環體。 循環體內什么都沒有,只寫一條“空語句”,這種寫法在實際項目中也是有用武之地的,比如,等待某件事是否滿足條件,如果不滿足,就一直死等死磕在這里,其它事情都干不了,這種“死等死磕”的做法,專業術語叫“阻塞”,與之反面相對應的是另外一個詞叫“非阻塞”。對于循環的“阻塞”用法,老練的工程師通常會多加一個超時的判斷,這些內容大家暫時不用深入了解,后續章節我會講到。 【48.5 例程練習和分析。】 現在編寫一個程序來熟悉一下while語句的書寫和使用格式。 程序代碼如下: /\*---C語言學習區域的開始。-----------------------------------------------\*/ unsigned char a=0; //觀察這個數最后的變化 unsigned char b=0; //觀察這個數最后的變化 unsigned char i; //控制循環體的條件判斷變量 void main() //主函數 { i=3; while(i) //i不斷減小,直到變為0時才跳出此循環體 { a=a+1; //當i從3減少到0的時候,這條語句被循環執行了3次。 i=i-1; //循環的條件不斷發生變化,不斷減小 } i=0; while(i<3) //i不斷增大,當i大于或者等于3時才跳出此循環體 { b=b+2; //當i從0增加到3的時候,這條語句被循環執行了3次。 i=i+1; //循環的條件不斷發生變化,不斷增加 } View(a); //把第1個數a發送到電腦端的串口助手軟件上觀察。 View(b); //把第2個數b發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:3 十六進制:3 二進制:11 第2個數 十進制:6 十六進制:6 二進制:110 分析: 變量a為3。a初始化為0,進入循環體內后,a每次加1,循環加3次,因此從0變成了3。 變量b為6。b初始化為0,進入循環體內后,b每次加2,循環加3次,因此從0變成了6。 【48.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>

                              哎呀哎呀视频在线观看