一、一個小需求
我想要打印10遍hello world,你想怎么編寫呢?
// 需求:打印10遍"hello world"fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")
平常打印輸出一個倆個沒問題,那一旦要求100遍,1000遍怎么做呢?
go中進行打印10遍hello world,使用for循環
// 循環for i := 0; i < 10; i++ {fmt.Println("hello world")}
二、for循環
一個for循環解決了上邊的小需求,那怎么使用for循環呢
1. for循環結構體
for 循環變量初始化;循環判斷條件;循環變量迭代 {循環執行語句}
可以了解使用for,需要上邊的四個要素:循環變量初始化;循環判斷條件;循環變量迭代;循環執行語句
2. 循環四要素
- 循環初始化:聲明在循環過程中,進行判斷和變量迭代,進行控制循環次數
- 循環判斷條件:為true時,進行循環體下一步;為false則結束循環
- 循環變量迭代:進行計算循環次數,一般使用變量累加進行計算
- 循環執行語句:TODO 我們待開發的功能
3. 循環四要素的執行順序
- 第一步:循環初始化
- 第二步:循環判斷條件(為true進行下邊步驟)
- 第三步:循環執行語句
- 第四步:循環變量迭代
- 第五步:循環執行第二步–至–第四步 直到判斷條件為false,退出循環
如果判斷條件一直為true,那么該for循環,為死循環(開發過程需要禁止)
4. 嘗試for
// 需求:循環五次,并打印每次初始化值for i := 0; i < 5; i++ {fmt.Println("i = ", i)}//i = 0//i = 1//i = 2//i = 3//i = 4
三、for變體之while
go中沒有while循環結構,但可以通過for進行變體,達到while功能的要求
// 循環初始化var i int = 0// 循環判斷for i < 5 {// 循環語句fmt.Println("i = ", i)// 循環迭代i++}//i = 0//i = 1//i = 2//i = 3//i = 4
結構體中,可以看出,如果把for換成while,是不是就是大家熟悉的while循環呢?
四、for變體之do…while
go中沒有do…while循環結構,也可以通過for進行變體,達到do…while功能的功能
// 循環初始化var j int = 0for {// 循環語句fmt.Println("j = ", j)// 循環迭代j++// 循環判斷if j >= 5 {break}}//j = 0//j = 1//j = 2//j = 3//j = 4
五、for循環遍歷列表
使用range進行遍歷序列的值
var str = "hello world"for index, val := range str {fmt.Printf("下標index=%d, 遍歷值val=%q\n", index, val)}//下標index=0, 遍歷值val='h'//下標index=1, 遍歷值val='e'//下標index=2, 遍歷值val='l'//下標index=3, 遍歷值val='l'//下標index=4, 遍歷值val='o'//下標index=5, 遍歷值val=' '//下標index=6, 遍歷值val='w'//下標index=7, 遍歷值val='o'//下標index=8, 遍歷值val='r'//下標index=9, 遍歷值val='l'//下標index=10, 遍歷值val='d'
六、跳出語句
剛剛在變體do…while過程中,我們使用到了break,那么為什么要使用他,他有什么作用呢?
break、continue這倆個都是出現在循環結構體中,進行循環的跳出
break: 結束當前結構體循環
continue: 結束本次循環
for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println("i=", i)if i > 5 {break}}//i= 1//i= 3//i= 5//i= 7
可以看到,偶數循環過程中,進行了跳過處理,當i大于5的時候進行中斷,當結果為7時,進行循環中斷
本章講了一些for循環的基本知識和for的幾種變體使用
附
- 知道循環和使用
- 熟練使用for的幾種變體
- 熟練使用break和continue