11 Go 語言流程控制 goto 無條件跳轉

2022-06-05 14:42:05 字數 2782 閱讀 2028

我的 github:github.com/iswbm/golangcodingtime

前面三種,我已經都講過了,今天要講講 goto 的無條件跳轉。

很難想象在 go 居然會保留 goto,因為很多人不建議使用 goto,所以在一些程式語言中甚至直接取消了 goto。

我感覺 go 既然保留,一定有人家的理由,只是我目前還沒感受到。不管怎樣,咱還是照常學習吧。

goto顧言思義,是跳轉的意思。

goto 後接乙個標籤,這個標籤的意義是告訴 go程式下一步要執行**的**。

所以這個標籤如何放置,放置在**,是 goto 裡最需要注意的。

goto 標籤;

......

標籤: 表示式;

goto可以打破原有**執行順序,直接跳轉到某一行執行**。

import "fmt"

func main()

執行結果,並不會輸出 b ,而只會輸出 a

a
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。

這邊舉乙個例子,用goto的方式來實現乙個列印 1到5 的迴圈。

import "fmt"

func main()

}

輸出如下

123

45

再舉個例子,使用 goto 實現 型別 break 的效果。

import "fmt"

func main()

fmt.println(i)

i++}flag:

}

輸出如下

123

45

最後再舉個例子,使用 goto 實現 型別 continue的效果,列印 1到10 的所有偶數。

import "fmt"

func main()

fmt.println(i)

i++}}

輸出如下

246

810

goto語句與標籤之間不能有變數宣告,否則編譯錯誤。

import "fmt"

func main()

編譯錯誤

.\main.go:7:7: goto flag jumps over declaration of say at .\main.go:8:6
01. 開發環境的搭建(goland & vs code)02. 學習五種變數建立的方法03. 詳解資料型別:****整形與浮點型

04. 詳解資料型別:byte、rune與string

05. 詳解資料型別:陣列與切片

06. 詳解資料型別:字典與布林型別

07. 詳解資料型別:指標

08. 物件導向程式設計:結構體與繼承

09. 一篇文章理解 go 裡的函式

10. go語言流程控制:if-else 條件語句

11. go語言流程控制:switch-case 選擇語句

12. go語言流程控制:for 迴圈語句

13. go語言流程控制:goto 無條件跳轉

14. go語言流程控制:defer 延遲呼叫

15. 物件導向程式設計:介面與多型

16. 關鍵字:make 和 new 的區別?

17. 一篇文章理解 go 裡的語句塊與作用域

18. 學習 go 協程:goroutine

19. 學習 go 協程:詳解通道/通道

20. 幾個通道死鎖經典錯誤案例詳解

21. 學習 go 協程:waitgroup

22. 學習 go 協程:互斥鎖和讀寫鎖

23. go 裡的異常處理:panic 和 recover

24. 超詳細解讀 go modules 前世今生及入門使用

25. go 語言中關於包匯入必學的 8 個知識點

26. 如何開源自己寫的模組給別人用?

27. 說說 go 語言中的型別斷言?

28. 這五點帶你理解go語言的select用法

11 Go 語言流程控制 goto 無條件跳轉

前面三種,我已經都講過了,今天要講講 goto 的無條件跳轉。很難想象在 go 居然會保留 goto,因為很多人不建議使用 goto,所以在一些程式語言中甚至直接取消了 goto。我感覺 go 既然保留,一定有人家的理由,只是我目前還沒感受到。不管怎樣,咱還是照常學習吧。goto顧言思義,是跳轉的意...

流程控制 goto語句

c 允許給 加上標籤,這樣就可以使用goto語句直接跳轉到這些 行上。該語句有其優缺點。優點 這是控制什麼時候執行哪些 的一種非常簡單的方式。缺點 過多的使用這個技巧將很難讀懂 goto語句用法如下 goto 標籤用下述方式定義 例如,下面的 int myinteger 5 goto mylabel...

Go語言 流程控制

if else分支判斷 if condition1 if condition1 else if condition1 else if condition2 else if condition3 else 練習 package main import fmt func main else 練習 寫乙個...