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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                【50.1 continue語句。】 通常情況下,單片機在循環體里從第一行的“入口條件”開始往下執行,直至碰到循環體的邊界“底部花括號”,才又折回到第一行的“入口條件”準備進行新一輪的循環。但是,若中途碰到continue語句,就會提前結束當前這一輪的循環,只要碰到continue語句,就立即折回到第一行的“入口條件”準備進行新一輪的循環。注意,continue語句“結束”的對象僅僅是“當前這一輪的循環”,并沒有真正結束這個循環的生命周期。它好像攔路虎,遇到它,它說“你回去,第二天再來。”這臺詞里的“第二天再來”就強調這個循環體的生命周期還沒有真正結束。舉一個具體的例子,如下: while(…)或者for(…) //循環體的條件判斷入口處 { //循環體開始 語句1; 語句2; continue; 語句3; …… 語句N; } //循環體結束 分析:上述語句中,單片機從“循環體的條件判斷入口處”開始往下執行,碰到continue就馬上折回到“循環體的條件判斷入口處”,繼續開始新一輪的循環,因此,這段代碼,continue后面的“語句3”至“語句N”是永遠也不會被執行到的。因為continue的攔截,上述語句等效于: while(…)或者for(…) //循環體的條件判斷入口處 { //循環體開始 語句1; 語句2; } //循環體結束 問題來了,既然可以如此簡化,還要continue干什么,不是多此一舉?在實際應用中,continue肯定不會像上面這樣單獨使用,continue只有跟if語句結合,才有它存在的意義。例如: while(…)或者for(…) //循環體的條件判斷入口處 { //循環體開始 語句1; 語句2; if(某條件) { continue; } 語句3; …… 語句N; } //循環體結束 【50.2 break語句。】 continue語句提前結束當前這一輪的循環,準備進入下一輪的新循環,強調“某次結束”,但不是真結束。break語句是直接跳出當前循環體,是真正的結束當前循環體,強調循環體的“生命結束”。舉例如下: while(…)或者for(…) //循環體的條件判斷入口處 { //循環體開始 語句1; 語句2; break; 語句3; …… 語句N; } //循環體結束 語句(N+1); //循環體之外語句 分析:上述語句中,單片機從“循環體的條件判斷入口處”開始往下執行,突然碰到break語句,此時,立即無條件跳出當前循環體(無需判斷while或者for的條件),直接執行到循環體之外的“語句(N+1)”,break后面的“語句3”至“語句N”也沒有被執行到。實際項目中,break也往往會配合if一起使用,例如: while(…)或者for(…) //循環體的條件判斷入口處 { //循環體開始 語句1; 語句2; if(某條件) { break; } 語句3; …… 語句N; } //循環體結束 語句(N+1); //循環體之外語句 【50.3 break語句能跳多遠?】 break語句能跳多遠?預知答案請先看以下例子: while(…) { 語句1; 語句2; while(…) { 語句3; break; 語句4; } 語句5; } 語句6; 分析:上述例子中,在while循環里面有藏著第二個while循環,像這種循環之中還有循環的情況,通常稱為循環嵌套。單片機從上往下執行,當遇到break后,它會跳到“語句5”那里呢,還是會跳到“語句6”那里?正確答案是“語句5”那里,這說明了break語句的“有效射程”僅僅剛好能跳出當前的循環體。也就是說,在上述循環嵌套的例子中,最內層的break只能跳出最內層的循環體,不能跳到最外層的“語句6”那里,如果需要繼續跳出最外層的“語句6”那里,可以繼續在外層的循環體內再增加一個break語句。 【50.4 還有哪些語句可以無條件跳出循環體?】 除了break以外,還有return和goto語句可以跳出循環體。這部分的內容大家只需大概了解一下即可。return語句比break語句還厲害,它不僅僅跳出當前循環體,還是跳出了當前函數,也就是提前結束了當前函數,這部分的內容后面章節會講到,暫時不用管。而goto語句在C語言中大家都公認不建議用,因為它很容易擾亂大家常用的C語言編程結構,我本人也從來沒有用過goto語句,因此不再深入講解它。 【50.5 例程練習和分析。】 編寫一個程序來熟悉一下continue和break語句的使用。 程序代碼如下: /\*---C語言學習區域的開始。-----------------------------------------------\*/ unsigned char a=0; //觀察這個數最后的變化 unsigned char b=0; //觀察這個數最后的變化 unsigned char c=0; //觀察這個數最后的變化 unsigned char d=0; //觀察這個數最后的變化 unsigned char i; //控制循環體的條件判斷變量 void main() //主函數 { //i<6的條件判斷是在進入循環體之前判斷,而i的自加1是在執行完一次循環體之后才自加的。 for(i=0;i<6;i++) { a=a+1; //被執行了6次,分別是第0,1,2,3,4,5次 if(i>=3) //當i等于3的時候,開始“攔截”continue后面的代碼。 { continue; //提前結束本次循環,準備進入下一次循環 } b=b+1; //被執行了3次,分別是第0,1,2次 } //i<6的條件判斷是在進入循環體之前判斷,而i的自加1是在執行完一次循環體之后才自加的。 for(i=0;i<6;i++) { c=c+1; //被執行了4次,分別是第0,1,2,3次 if(i>=3) //當i等于3的時候,直接跳出當前循環體,結束此循環體的“生命周期”。 { break; //馬上跳出當前循環體 } d=d+1; //被執行了3次,分別是第0,1,2次 } View(a); //把第1個數a發送到電腦端的串口助手軟件上觀察。 View(b); //把第2個數b發送到電腦端的串口助手軟件上觀察。 View(c); //把第3個數c發送到電腦端的串口助手軟件上觀察。 View(d); //把第4個數d發送到電腦端的串口助手軟件上觀察。 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:6 十六進制:6 二進制:110 第2個數 十進制:3 十六進制:3 二進制:11 第3個數 十進制:4 十六進制:4 二進制:100 第4個數 十進制:3 十六進制:3 二進制:11 分析: 變量a為6。 變量b為3。 變量c為4。 變量d為3。 【50.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>

                              哎呀哎呀视频在线观看