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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                循環控制語句 循環控制語句可以控制循環體內語句的執行過程。 GO 語言支持以下幾種循環控制語句: Goto、Break、Continue ~~~ 1.三個語句都可以配合標簽(label)使用 2.標簽名區分大小寫,定以后若不使用會造成編譯錯誤 3.continue、break配合標簽(label)可用于多層循環跳出 4.goto是調整執行位置,與continue、break配合標簽(label)的結果并不相同 ~~~ goto 語句 將控制轉移到被標記的語句。 Go 語言的 goto 語句可以無條件地轉移到過程中指定的行。 goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。 但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。 語法 goto 語法格式如下: ~~~ goto label; .. . label: statement; ~~~ Golang支持在函數內 goto 跳轉。標簽名區分大小寫,未使用標簽引發錯誤。 ~~~ func main() { var i int for { println(i) i++ if i > 2 { goto BREAK } } BREAK: println("break") EXIT: // Error: label EXIT defined and not used } ~~~ goto 實例: ~~~ package main import "fmt" func main() { /* 定義局部變量 */ var a int = 10 /* 循環 */ LOOP: for a < 20 { if a == 15 { /* 跳過迭代 */ a = a + 1 goto LOOP } fmt.Printf("a的值為 : %d\n", a) a++ } } ~~~ Golang支持在函數內 goto 跳轉。goto語句與標簽之間不能有變量聲明。否則編譯錯誤。 ~~~ package main import "fmt" func main() { fmt.Println("start") goto Loop var i int = 1 Loop: fmt.Println(i) fmt.Println("end") } ~~~ 編譯錯誤: ~~~ ./main.go:7:7: goto Loop jumps over declaration of i at ./main.go:9:6 ~~~ 以上實例執行結果為: ~~~ a的值為 : 10 a的值為 : 11 a的值為 : 12 a的值為 : 13 a的值為 : 14 a的值為 : 16 a的值為 : 17 a的值為 : 18 a的值為 : 19 ~~~ 控制語句 break 語句 經常用于中斷當前 for 循環或跳出 switch 語句 Go 語言中 break 語句用于以下兩方面: 1.用于循環語句中跳出循環,并開始執行循環之后的語句。 2.break在switch(開關語句)中在執行一條case后跳出語句的作用。 實例: ~~~ package main import "fmt" func main() { /* 定義局部變量 */ var a int = 10 /* for 循環 */ for a < 20 { fmt.Printf("a 的值為 : %d\n", a) a++ if a > 15 { /* 使用 break 語句跳出循環 */ break } } } ~~~ 以上實例執行結果為: ~~~ a 的值為 : 10 a 的值為 : 11 a 的值為 : 12 a 的值為 : 13 a 的值為 : 14 a 的值為 : 15 ~~~ Break label 語句:我們在for多層嵌套時,有時候需要直接跳出所有嵌套循環, 這時候就可以用到go的label breaks特征了。 先看一個范例代碼: ~~~ package main import ( "fmt" ) func main() { fmt.Println("1") Exit: for i := 0; i < 9; i++ { for j := 0; j < 9; j++ { if i+j > 15 { fmt.Print("exit") break Exit } } } fmt.Println("3") } ~~~ 執行效果: ~~~ 1 exit3 ~~~ 注意:label要寫在for循環的開始而不是結束的地方。和goto是不一樣的。雖然它是直接break退出到指定的位置。 break的標簽和goto的標簽的區別可以參考下面代碼: ~~~ JLoop: for i := 0; i < 10; i++ { fmt.Println("label i is ", i) for j := 0; j < 10; j++ { if j > 5 { //跳到外面去啦,但是不會再進來這個for循環了 break JLoop } } } //跳轉語句 goto語句可以跳轉到本函數內的某個標簽 gotoCount := 0 GotoLabel: gotoCount++ if gotoCount < 10 { goto GotoLabel //如果小于10的話就跳轉到GotoLabel } ~~~ break 標簽除了可以跳出 for 循環,還可以跳出 select switch 循環, 參考下面代碼: ~~~ L: for ; count < 8192; count++ { select { case e := <-self.pIdCh: args[count] = e default: break L // 跳出 select 和 for 循環 } } ~~~ continue 語句 跳過當前循環的剩余語句,然后繼續進行下一輪循環。 Go 語言的 continue 語句 有點像 break 語句。但是 continue 不是跳出循環,而是跳過當前循環執行下一次循環語句。 for 循環中,執行 continue 語句會觸發for增量語句的執行。 實例: ~~~ package main import "fmt" func main() { /* 定義局部變量 */ var a int = 10 /* for 循環 */ for a < 20 { if a == 15 { /* 跳過此次循環 */ a = a + 1 continue } fmt.Printf("a 的值為 : %d\n", a) a++ } } ~~~ 以上實例執行結果為: ~~~ a 的值為 : 10 a 的值為 : 11 a 的值為 : 12 a 的值為 : 13 a 的值為 : 14 a 的值為 : 16 a 的值為 : 17 a 的值為 : 18 a 的值為 : 19 ~~~ 配合標簽,break 和 continue 可在多級嵌套循環中跳出。 ~~~ func main() { L1: for x := 0; x < 3; x++ { L2: for y := 0; y < 5; y++ { if y > 2 { continue L2 } if x > 1 { break L1 } print(x, ":", y, " ") } println() } } ~~~ 輸出: ~~~ 0:0 0:1 0:2 1:0 1:1 1:2 ~~~ 附:break 可用于 for、switch、select,而 continue 僅能用于 for 循環。 ~~~ x := 100 switch { case x >= 0: if x == 0 { break } println(x) } ~~~ goto、continue、break語句: ~~~ package main import "fmt" func main() { //goto直接調到LAbEL2 for { for i := 0; i < 10; i++ { if i > 3 { goto LAbEL2 } } } fmt.Println("PreLAbEL2") LAbEL2: fmt.Println("LastLAbEL2") //break跳出和LAbEL1同一級別的循環,繼續執行其他的 LAbEL1: for { for i := 0; i < 10; i++ { if i > 3 { break LAbEL1 } } } fmt.Println("OK") //continue LABEL3: for i := 0; i < 3; i++ { for { continue LABEL3 } } fmt.Println("ok") } ~~~ 輸出如下: ~~~ LastLAbEL2 OK ok ~~~
                  <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>

                              哎呀哎呀视频在线观看