<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      go--for 循環(huán)、continue、break、goto

      for 循環(huán)

      go 里面的循環(huán)只有一個 for 循環(huán)

      for 循環(huán)有下面四種方式的寫法

      第一種方式,for 后面什么都不寫

      死循環(huán),在代碼中,如果一個 for 循環(huán)沒有結束條件,則代碼會陷入死循環(huán)

      package main
      
      import (
         "fmt"
         "time"
      )
      
      func main() {
         fmt.Println("開始")
         for { // 死循環(huán)了,沒有結束條件
            fmt.Println("紅鯉魚與綠鯉魚與驢")
            time.Sleep(time.Second * 1) // 等一秒再繼續(xù)執(zhí)行
         }
      
      }

      第二種,只寫判斷條件

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         fmt.Println("開始")
         number := 1
         for number < 5 { // 只寫了判斷條件
            fmt.Println("釣魚要掉刀魚,刀魚要到島上釣")
            number = number + 1
         }
         fmt.Println("結束")
      
      }
      package main
      
      import (
         "fmt"
      )
      
      func main() {
         fmt.Println("開始")
         flag := true
         for flag {
            fmt.Println("釣魚要掉刀魚,刀魚要到島上釣")
            flag = false // 設為 false,就會結束,不在循環(huán)
         }
         fmt.Println("結束")
      
      }

      第三種,變量&條件

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         fmt.Println("開始")
         for i := 1; i < 10; { // 變量 i 只在 for 循環(huán)內有效,條件為 i<10
            fmt.Println("釣魚要掉刀魚,刀魚要到島上釣")
            i = i + 1 // i 會加 1
         }
         fmt.Println("結束")
      
      }

      第四種,變量&條件&變量賦值 

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         fmt.Println("開始")
         for i := 1; i < 10; i = i + 1 { //變量+條件+條件賦值
            fmt.Println("釣魚要掉刀魚,刀魚要到島上釣")
         }
      
         // i = i + 1 簡化為:i++
         for i := 1; i < 10; i++ {
            fmt.Println("釣魚要掉刀魚,刀魚要到島上釣")
         }
         fmt.Println("結束")
      
      }

      上面四種就是 for 循環(huán)的四種寫法,最常用的是第四種

      for range

      在 go 中,我們可以通過 for range 來循環(huán),會返回兩個值,第一個是索引,第二個是值

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         str1 := "hello鄒鄒"
         for _, value := range str1 {
            fmt.Println(value)
         }
      
      }

      結果

      104
      101
      108
      108
      111
      37049
      37049

      上面代碼執(zhí)行后,會打印一串數字而不是字符。這是由于go語言中的字符串實際上是類型為 byte 的只讀切片?;蛘哒f一個字符串就是一堆字節(jié)。這意味著,當我們將字符存儲在字符串中時,實際存儲的是這個字符的字節(jié)。一個字符串包含了任意個 byte,它并不限定 Unicode,UTF-8 或者任何其他預定義的編碼。

      我們可以用 string 轉換一下

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         str1 := "hello鄒鄒"
         for index, value := range str1 {
            fmt.Println(index, string(value))
         }
      }

      結果

      0 h
      1 e
      2 l
      3 l
      4 o
      5 鄒
      8 鄒

      但上面我們輸出的索引是有問題的,所以我們可以轉為 rune 的列表,在循環(huán),如下

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         str1 := "hello鄒鄒"
         //轉成 rune 的列表
         for index, value := range []rune(str1) {
            fmt.Println(index, string(value))
         }
      }

      結果

      0 h
      1 e
      2 l
      3 l
      4 o
      5 鄒
      6 鄒

      continue

      在 for 循環(huán)中,當循環(huán)遇到 continue 關鍵字時,會停止當前循環(huán),開始下一次循環(huán)

      案例1:使用循環(huán)輸出 1 2 3 4 5 6 8 9 10,即:10以內除7以外的整數。

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         for i := 1; i <= 10; i++ {
            if i == 7 {
               continue
            }
            fmt.Println(i)
         }
      
      }

      結果

      1
      2
      3
      4
      5
      6
      8
      9
      10

      案例2:for循環(huán)嵌套 + continue

      package main
      
      import (
         "fmt"
      )
      
      func main() {
         for i := 1; i < 3; i++ {
            for j := 1; j < 5; j++ {
               if j == 3 {
                  continue
               }
               fmt.Println(i, j)
            }
         }
      
      }

      結果

      1 1
      1 2
      1 4
      2 1
      2 2
      2 4

      break

      在 for 循環(huán)中時,循環(huán)中一旦遇到 break,跳出循環(huán)

      案例:猜數字,設定一個理想數字比如:66,一直提示讓用戶輸入數字,如果比66大,則顯示猜測的結果大了;如果比66小,則顯示猜測的結果小了;只有輸入等于66,顯示猜測結果正確,然后退出循環(huán)。
      package main
      
      import "fmt"
      
      func main() {
         fmt.Print("開始")
         data := 66
         for {
            var userInputNumber int
            fmt.Print("請輸入數字:")
            fmt.Scanln(&userInputNumber)
            if userInputNumber > data {
               fmt.Println("大了")
            } else if userInputNumber < data {
               fmt.Println("小了")
            } else {
               fmt.Println("恭喜你猜對了")
               break
            }
         }
         fmt.Print("結束")
      }

      案例:

      package main
      
      import "fmt"
      
      func main() {
         for i := 1; i < 3; i++ {
            for j := 1; j < 5; j++ {
               if j == 3 {
                  break
               }
               fmt.Println(i, j)
            }
         }
      
      }

      結果 

      1 1
      1 2
      2 1
      2 2

      給 for 進行打標簽

      在 go 種,可以對 for 進行打標簽,然后通過 break 和 continue 就可以實現多層循環(huán)的跳出和終止

      package main
      
      import "fmt"
      
      func main() {
      f1: // 給 for 打了個標簽,f1
         for i := 1; i < 3; i++ {
            for j := 1; j < 5; j++ {
      
               if j == 3 {
                  continue f1 // continue 后面加了 f1,則會跳出打了標簽的 for 循環(huán)
               }
               fmt.Println(i, j)
            }
         }
      
      }

       結果

      1 1
      1 2
      2 1
      2 2

      例子

      package main
      
      import "fmt"
      
      func main() {
      f1: // 給 for 打了個標簽,f1
         for i := 1; i < 3; i++ {
            for j := 1; j < 5; j++ {
               if j == 3 {
                  break f1 // break 后面加了 f1,則會跳出打了標簽的 for 循環(huán)
               }
               fmt.Println(i, j)
            }
         }
      
      }

       結果

      1 1
      1 2

      goto 語句

      go 語言中的 goto 語句可以無條件的轉移到過程中指定的行。

      goto 語句通常與條件語句配合使用,可以用來實現條件轉移,構成循環(huán),跳出循環(huán)體等功能。但是,在結構化程序設計中一般不主張使用 goto 語句,以免造成程序流程的混亂,使理解和調試程序都產生困難

      package main
      
      import "fmt"
      
      func main() {
         var name string
         fmt.Print("請輸入姓名:")
         fmt.Scanln(&name)
      
         if name == "鄒鄒" {
            // svip
            goto SVIP //  直接從 SVIP 處往下執(zhí)行代碼
         } else if name == "張三" {
            // vip
            goto VIP //  直接從 VIP 處往下執(zhí)行代碼
         }
         fmt.Println("預約...")
      VIP: // 給個標記為 VIP
         fmt.Println("等號...")
      SVIP: // 給個標記為 SVIP
         fmt.Println("進入...")
      }

      我們可以使用 goto 語句來處理錯誤,例如如下的錯誤

      err := firstCheckError() // 第一個錯誤
      if err != nil{
          exitProcess()
          return
      }
      err := secondCheckError()  // 第二個錯誤
      if err != nil{
          exitProcess()
          return
      }
      fmt.Println("done")

      我們可以使用 goto 語句來處理

      err := firstCheckError() // 第一個錯誤
      if err != nil{
          goto onExit // 跳轉到 onExit
      }
      err := secondCheckError()  // 第二個錯誤
      if err != nil{
          goto onExit // 跳轉到 onExit
      }
      fmt.Println("done")
      onExit: // 跳轉到這里執(zhí)行
           exitProcess()

       

      posted @ 2023-12-17 20:38  鄒鄒很busy。  閱讀(505)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久国产av影片| 国产成人高清亚洲综合| 在线a级毛片免费视频| 国产久免费热视频在线观看| 男人和女人高潮做爰视频| 91麻豆亚洲国产成人久久| 国产视色精品亚洲一区二区| 中文字幕人妻不卡精品| 国产一区二区三区免费观看| 亚洲精品一区二区天堂| 91亚洲国产三上悠亚在线播放| 亚洲精品中文字幕尤物综合| 男女猛烈激情xx00免费视频| 久久婷婷五月综合色99啪ak| 万荣县| 国产精品老熟女一区二区| 久热综合在线亚洲精品| 天美传媒一区二区| 亚洲无码在线免费观看| 色吊丝二区三区中文字幕| 国产成人精品2021欧美日韩| 国产精品中文字幕日韩| 亚洲人成电影网站色mp4| 真实国产老熟女无套中出| 亚洲综合色区另类av| 国产精品乱一区二区三区| 欧美疯狂三p群体交乱视频| 亚洲二区中文字幕在线| 在线观看亚洲欧美日本| 欧美嫩交一区二区三区| 中文字幕人妻av12| 亚洲国产精品人人做人人爱| 国产在线亚州精品内射| 亚洲欧美人成电影在线观看| 国产激情无码一区二区三区| 久久人人爽人人爽人人av| 国产高清自产拍av在线| 欧美日韩中文字幕视频不卡一二区| 亚洲精品久久7777777国产 | 色狠狠色噜噜AV一区| 国产极品精品自在线不卡|