計算機編程語言中,流程控制語句很重要,能夠讓機器知道何時作什麼事,作幾回。主要有條件和循環語句。算法
Golang
只有一種循環:for
,只有一種判斷:if
,還有一種特殊的switch
條件選擇語句。編程
舉個例子:segmentfault
// 判斷語句 if a > 0 { fmt.Println("a>0") } else { fmt.Println("a<=0") }
當a > 0
時打印a>0
,不然打印a<=0
。其中條件a > 0
不須要加小括號。數組
條件語句表示若是什麼,作什麼,不然,作什麼。數據結構
幾種判斷形式爲:併發
if a > 0{ }
只有if
。數據結構和算法
if a > 0{ }else{ }
有if
以及else
。編程語言
if a > 0{ }else if a == 0 { }else{ }
中間可混入else if
。函數
若是中間的條件太多的話,能夠使用switch
條件語句:code
num := 4 switch num { case 3: fmt.Println(3) case 4: fmt.Println(4) case 5: fmt.Println(5) default: fmt.Println("not found")
這種語句會從case
一個個判斷,若是找到一個case
符合條件,那麼進入該case
執行指令,不然進入default
。
上面num := 4
將會進入case 4
,打印數字4後結束。若是num := 5
,將會打印數字5後結束。若是num := 8
,會打印字符串 not found。
循環語句:
// 循環語句 for i := 9; i <= 10; i++ { fmt.Printf("i=%d\n", i) }
其中i
是局部變量,循環第一次前被賦予了值9
,而後判斷是否知足i<=10
條件,若是知足那麼進入循環打印,每一次循環後會加1
,也就是i++
,而後繼續判斷是否知足條件。
形式爲:
for 起始狀態; 進入循環需知足的條件; 每次循環後執行的指令 { }
你也能夠死循環:
// 死循環語句 a = 0 for { if a >= 10 { fmt.Println("out") // 退出循環 break } a = a + 1 if a > 5 { continue } fmt.Println(a) }
死循環直接for {}
,後面不須要加條件,而後當a>=10
時跳出循環能夠使用break
,表示跳出for {}
,對於a > 5
,咱們不想打印出值,能夠使用continue
跳事後面的語句fmt.Println(a)
,提早再一次進入循環。
切片
和字典
均可以使用循環來遍歷數據:
e := []int64{1, 2, 3} // slice f := map[string]int64{"a": 3, "b": 4} // map // 循環切片 for k, v := range e { fmt.Println(k, v) } // 循環map for k, v := range f { fmt.Println(k, v) }
切片遍歷出來的結果爲:數據下標,數據,字典遍歷出來的結果爲:數據的鍵,數據的值:
0 1 1 2 2 3 3 3 a 3 b 4 f 5
我是陳星星,歡迎閱讀我親自寫的 數據結構和算法(Golang實現),文章首發於 閱讀更友好的GitBook。