Hi,你們好,我是明哥。python
在本身學習 Golang 的這段時間裏,我寫了詳細的學習筆記放在個人我的微信公衆號 《Go編程時光》,對於 Go 語言,我也算是個初學者,所以寫的東西應該會比較適合剛接觸的同窗,若是你也是剛學習 Go 語言,不防關注一下,一塊兒學習,一塊兒成長。git
個人在線博客:golang.iswbm.com 個人 Github:github.com/iswbm/GolangCodingTimegithub
Go裏的流程控制方法仍是挺豐富,整理了下有以下這麼多種:golang
上一篇講了switch - case 選擇語句,今天先來說講 for 循環語句。編程
這是 for 循環的基本模型。數組
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}複製代碼
能夠看到 for 後面,能夠接三種類型的表達式。微信
但其實還有第四種函數
這個例子會打印 1 到 5 的數值。學習
a := 1
for a <= 5 {
fmt.Println(a)
a ++
}複製代碼
輸出以下spa
1
2
3
4
5複製代碼
for 後面,緊接着三個表達式,使用 ;
分隔。
這三個表達式,各有各的用途
這邊的例子和上面的例子,是等價的。
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
}複製代碼
輸出以下
1
2
3
4
5複製代碼
在 Go 語言中,沒有 while 循環,若是要實現無限循環,也徹底能夠 for 來實現。
當你不加任何的判斷條件時, 就至關於你每次的判斷都爲 true,程序就會一直處於運行狀態,可是通常咱們並不會讓程序處於死循環,在知足必定的條件下,可使用關鍵字 break
退出循環體,也可使用 continue
直接跳到下一循環。
下面兩種寫法都是無限循環的寫法。
for {
代碼塊
}
// 等價於
for ;; {
代碼塊
}複製代碼
舉個例子
import "fmt"
func main() {
var i int = 1
for {
if i > 5 {
break
}
fmt.Printf("hello, %d\n", i)
i++
}
}複製代碼
輸出以下
hello, 1
hello, 2
hello, 3
hello, 4
hello, 5複製代碼
遍歷一個可迭代對象,是一個很經常使用的操做。在 Go 可使用 for-range 的方式來實現。
range 後可接數組、切片,字符串等
因爲 range 會返回兩個值:索引和數據,若你後面的代碼用不到索引,須要使用 _
表示 。
import "fmt"
func main() {
myarr := [...]string{"world", "python", "go"}
for _, item := range myarr {
fmt.Printf("hello, %s\n", item)
}
}複製代碼
輸出以下
hello, world
hello, python
hello, go複製代碼
系列導讀
24. 超詳細解讀 Go Modules 前世此生及入門使用