<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之旅 廣告
                與多數語言不同的是,Go語言中的循環語句只支持 for 關鍵字,而不支持 while 和 do-while 結構,關鍵字 for 的基本使用方法與C語言和[C++](http://c.biancheng.net/cplus/)中非常接近: ~~~ sum := 0 for i := 0; i < 10; i++ { sum += i } ~~~ 可以看到比較大的一個不同在于 for 后面的條件表達式不需要用圓括號`()`括起來,Go語言還進一步考慮到無限循環的場景,讓開發者不用寫無聊的?`for(;;){}`和`do{} while(1);`,而直接簡化為如下的寫法: ~~~ sum := 0 for { sum++ if sum > 100 { break } } ~~~ 使用循環語句時,需要注意的有以下幾點: * 左花括號`{`必須與 for 處于同一行。 * Go語言中的 for 循環與C語言一樣,都允許在循環條件中定義和初始化變量,唯一的區別是,**Go語言不支持以逗號為間隔的多個賦值語句**,必須使用平行賦值的方式來初始化多個變量。 * Go語言的 for 循環同樣支持 continue 和 break 來控制循環,但是它提供了一個更高級的 break,可以選擇中斷哪一個循環,如下例: ~~~ for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) } } JLoop: // ... ~~~ 上述代碼中,break 語句終止的是 JLoop 標簽處的外層循環。 ## for 中的初始語句——開始循環時執行的語句 **初始語句是在第一次循環前執行的語句,一般使用初始語句執行變量初始化**,如果變量在此處被聲明,其作用域將被局限在這個 for 的范圍內。 初始語句可以被忽略,但是初始語句之后的分號必須要寫,代碼如下: ~~~ step := 2 for ; step > 0; step-- { fmt.Println(step) } ~~~ 這段代碼將 step 放在 for 的前面進行初始化,for 中沒有初始語句,此時 step 的作用域就比在初始語句中聲明 step 要大。 ## for 中的條件表達式——控制是否循環的開關 #### 1) 結束循環時帶可執行語句的無限循環 下面代碼忽略條件表達式,但是保留結束語句,代碼如下: ~~~ var i int for ; ; i++ { if i > 10 { break } } ~~~ 代碼說明如下: * 第 3 行,無須設置 i 的初始值,因此忽略 for 的初始語句,兩個分號之間是條件表達式,也被忽略,此時循環會一直持續下去,for 的結束語句為 i++,每次結束循環前都會調用。 * 第 5 行,判斷 i 大于 10 時,通過 break 語句跳出 for 循環到第 9 行。 #### 2) 無限循環 上面的代碼還可以改寫為更美觀的寫法,代碼如下: ~~~ var i int for { if i > 10 { break } i++ } ~~~ 代碼說明如下: * 第 3 行,忽略 for 的所有語句,此時 for 執行無限循環。 * 第 9 行,將 i++ 從 for 的結束語句放置到函數體的末尾是等效的,這樣編寫的代碼更具有可讀性。 無限循環在收發處理中較為常見,但需要無限循環有可控的退出方式來結束循環。 #### 3) 只有一個循環條件的循環 在上面代碼的基礎上進一步簡化代碼,將 if 判斷整合到 for 中,變為下面的代碼: ~~~ var i int for i <= 10 { i++ } ~~~ 在代碼第 3 行中,將之前使用`if i>10{}`判斷的表達式進行取反,變為判斷 i 小于等于 10 時持續進行循環。 上面這段代碼其實類似于其他編程語言中的 while,在 while 后添加一個條件表達式,滿足條件表達式時持續循環,否則結束循環。 ## for 中的結束語句——每次循環結束時執行的語句 在結束每次循環前執行的語句,如果循環被 break、goto、return、panic 等語句強制退出,結束語句不會被執行。
                  <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>

                              哎呀哎呀视频在线观看