<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之旅 廣告
                ### 3.4.3 循環的非正常中斷 正常的循環總是按“從頭到尾再回到頭”的方式進行的,但是很多編程語言都提供了在特定條件下打破正常循環方式的語句,目的是在某些情況下可以編寫更簡單的代碼。Python 語言中也提供了這樣的語句:break 和 continue。 break 語句 for 或 while 語句的循環體中可以使用 break 語句,其效果是終止本次循環,并將控制跳 出循環語句,轉到循環語句的下一條語句。 break 語句經常與一個無窮循環搭配使用,因為按正常途徑是跳不出無窮循環的,而用 break 則能以非正常方式跳出循環。例如,我們換一種方法來實現“輸入合法性檢查”,代碼 如下: ``` >>> while True: x = input("Please input a positive number: ") if x > 0: break Please input a positive number: -2 Please input a positive number: 0 Please input a positive number: 2 >>> ``` 這里循環條件是常量 True,它的值是不可能被循環體改變的,即永遠為真,所以這是一個無 窮循環①。與前面用后測試循環實現的輸入合法性檢查代碼相比較,可以看到這段代碼不需 要人為設置循環的初始條件為 True,因為循環體總是要執行的。這樣的代碼更加簡單直觀, 但問題是如何退出無窮循環呢?從上面的代碼可見,當用戶輸入數據不正確,就會不斷循環, 要求用戶重新輸入;當用戶確實輸入了正數 x,就會執行 break 語句,其作用是跳出循環,控 制轉到下一條語句(通常是接著對合法的輸入數據 x 進行處理的代碼)。 再看一個用 break 跳出 for 循環的例子: ``` >>> for i in range(10): print "煩" if i > 4: break 煩 煩 煩 煩 煩 煩 ``` 從代碼可見,雖然 for 語句本身說的是要罰寫 10 遍“煩”字,但循環體中卻另有安排:如果 已經抄寫了 6 遍(思考:為什么是 6 遍?顛倒循環體中兩條語句的順序又會如何?)“煩”字 后,就不耐煩地跳出了循環。 > ① 由于 1 在很多語言中都解釋為 True,所以有很多人喜歡用 while 1 來表示無窮循環。 利用無窮循環和 break 搭配的結構同樣可以實現前面介紹的哨兵循環,一般模式如下: ``` while True: 輸入下一個數據 x if x 是哨兵: break 處理 x ``` 與哨兵循環模式相比較,就能看出這種模式不需要循環之前的前導輸入,但在循環體中必須 用 break 才能退出循環。 continue 語句 for 或 while 語句的循環體中還可以使用 continue 語句,其作用是終止本次循環,并將控 制轉到循環語句的開始處,“繼續”執行下一次循環。 對 break 與 continue 語句進行比較,可知兩者都終止執行當前循環,但接著 break 會跳出 循環語句,而 continue 則繼續下一次循環。 看一個簡單例子:對數據列表中的奇數求和。算法很簡單,只需逐個檢查列表中的數據, 如果是奇數就加到總和上,如果是偶數就忽略之,直接去檢查下一個數據。代碼如下: ``` >>> a = [23,28,39,44,50,67,99] >>> sum = 0 >>> for i in a: if a % 2 == 0: continue sum = sum + i >>> print sum 228 ``` 要說明的是,break 和 continue 語句導致循環結構有多個出口,這不符合結構化編程的基 本思想。雖然使用它們沒什么大問題,但仍然建議讀者盡量避免使用,尤其是不宜在一個循 環體中使用多個 break 或 continue 語句。關于結構化編程,詳見 3.5 節。
                  <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>

                              哎呀哎呀视频在线观看