日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三、Go语言控制语句

發(fā)布時(shí)間:2024/10/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、Go语言控制语句 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

@Author:Runsen

Go的語(yǔ)法很簡(jiǎn)單,其實(shí)也有一部分就是因?yàn)镚o語(yǔ)言中控制語(yǔ)句關(guān)鍵字很少,但卻完全滿(mǎn)足了我們的需求,下面我列舉了Go語(yǔ)言中常用的控制語(yǔ)言,對(duì)每一個(gè)控制語(yǔ)句都進(jìn)行代碼展示與解釋。

文章目錄

  • if 語(yǔ)句
  • switch語(yǔ)句
  • for循環(huán)
  • goto語(yǔ)句

if 語(yǔ)句

依據(jù)條件是否滿(mǎn)足確定執(zhí)行哪個(gè)分支。
語(yǔ)法:

if 條件 1 {分支 1 } else if 條件 2 {分支 2 } else if 條件 ... {分支 ... } else {分支 else }

注意:Go語(yǔ)言規(guī)定與if匹配的左括號(hào){必須與if和表達(dá)式放在同一行,{放在其他位置會(huì)觸發(fā)編譯錯(cuò)誤。同理,與else匹配的{也必須與else寫(xiě)在同一行,else也必須與上一個(gè)if或else if右邊的大括號(hào)在同一行。

package mainimport ("fmt" )func main() {age := 20if age > 18 {fmt.Println("你已經(jīng)是成年人了")} else if age > 6 {fmt.Println("你還是一個(gè)小屁孩")} else {fmt.Println("你還是一個(gè)小娃娃")} }你已經(jīng)是成年人了

switch語(yǔ)句

有時(shí)候我們有大量if…else if…else語(yǔ)句,這樣寫(xiě)不美觀,也不夠直觀。對(duì)于這類(lèi)需求,Go語(yǔ)言用switch 語(yǔ)句對(duì)其進(jìn)行條件判斷,其基本語(yǔ)法如下:

switch 判斷變量 {case 表達(dá)式1:語(yǔ)句1case 表達(dá)式2:語(yǔ)句2......default:默認(rèn)語(yǔ)句 }

例子:我們根據(jù)一個(gè)人的年齡去判斷屬于哪一年齡段。

package mainimport "fmt"func main() {age := 18switch age {case 60:fmt.Print("老人")case 30:fmt.Print("中年")case 18:fmt.Print("青年")case 6:fmt.Print("少年")default:fmt.Print("你是一個(gè)人才")} }青年

注意:Go語(yǔ)言規(guī)定每個(gè)switch只能有一個(gè)default分支,還有case沒(méi)有數(shù)值大于小于的比較

這里需要補(bǔ)充一個(gè):fallthrough。fallthrough可以執(zhí)行滿(mǎn)足條件的case的下一個(gè)case,是為了兼容C語(yǔ)言中的case設(shè)計(jì)的。如下:

package mainimport "fmt"func main() {s := "a"switch {case s == "a":fmt.Println("a")fallthroughcase s == "b":fmt.Println("b")case s == "c":fmt.Println("c")default:fmt.Println("...")} }

這樣在執(zhí)行s == "a"的時(shí)候會(huì)同時(shí)執(zhí)行s == "b"。

for循環(huán)

在Go語(yǔ)言不再使用 do 或 while 循環(huán),只有一種循環(huán)語(yǔ)句,那就是for循環(huán) ,其基本格式如下:

for 初始語(yǔ)句;條件表達(dá)式;結(jié)束語(yǔ)句{循環(huán)體 }

下面舉一個(gè)例子,比如輸出0到9。

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {fmt.Println(i)} }0 1 2 3 4 5 6 7 8 9

如果for后面不跟任何語(yǔ)句,則是無(wú)限循環(huán),如下所示。

package mainimport "fmt"func main() {for {fmt.Println(我們學(xué)習(xí)Go")} }

Go語(yǔ)言中可以使用for range遍歷數(shù)組、切片、字符串、map 及通道(channel)。通過(guò)for range遍歷的返回值有以下規(guī)律:

  • 數(shù)組、切片、字符串返回索引和值。
  • map返回鍵和值。
  • 通道(channel)只返回通道內(nèi)的值。

下面舉一個(gè)例子,遍歷字符串,如下所示。

package mainimport "fmt"func main() {s := "Hello"for i, v := range s {fmt.Printf("%d - %c \n", i, v)} }0 - H 1 - e 2 - l 3 - l 4 - o

如果我們不需要索引值,我們可以用匿名變量去接收,如下所示。

package mainimport "fmt"func main() {s := "Hello"for _, v := range s {fmt.Printf("%c \n", v)} }H e l l o

還有兩個(gè)關(guān)鍵詞,跳出循環(huán)有break和continue,break和continue和其他編程語(yǔ)言相同。

break:跳出當(dāng)前循環(huán)

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)} }0 1 2 3 4

continue:跳出本次循環(huán)

package mainimport "fmt"func main() {for i := 0; i < 10; i++ {if i == 5 {continue}fmt.Println(i)} }0 1 2 3 4 6 7 8 9

goto語(yǔ)句

在雙層嵌套的for循環(huán),經(jīng)常見(jiàn)到goto語(yǔ)句。goto語(yǔ)句可以在快速跳出循環(huán)、避免重復(fù)退出上有一定的幫助。

轉(zhuǎn)到goto語(yǔ)句的語(yǔ)法如下:

goto label; .. label: statement;

在這里,label可以是除去關(guān)鍵字任何純文本,它可以在任何地方設(shè)置在Go程序的上方或下方,以使用goto語(yǔ)句。

這邊舉一個(gè)例子,用 goto 的方式來(lái)實(shí)現(xiàn)一個(gè)打印 10到19的循環(huán)。

package mainimport "fmt"func main() {var a int = 10LOOP: for a < 20 {if a == 15 {a = a + 1goto LOOP}fmt.Printf("value of a: %d\n", a)a++ } }value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19

總結(jié)

以上是生活随笔為你收集整理的三、Go语言控制语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。