這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
控制語句
條件陳述式
條件陳述式不需要使用括弧將條件包含起來();
無論語句體內有幾條語句,花括弧{}都是必須存在的;
左花括弧{必須與if或者else處於同一行;
在if之後,條件陳述式之前,可以添加變數初始化語句,使用;間隔;
在有傳回值的函數中,不允許將“最終的”return語句包含在if…else…結構中,否則會編譯失敗:
func example(x int) int{
var result intif x == 0 { result = 5 } else { result = x } return result
}
選擇語句
switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough case 3: fmt.Printf("3") case 4, 5, 6: fmt.Printf("4, 5, 6") default: fmt.Printf("Default") }
switch後面可以不帶運算式
switch { case 0 <= Num && Num <= 3: fmt.Printf("0-3") case 4 <= Num && Num <= 6: fmt.Printf("4-6") case 7 <= Num && Num <= 9: fmt.Printf("7-9")}
golang的switch有幾個特點:
- 左花括弧{必須與switch處於同一行;
- 條件運算式不限制為常量或者整數;
- 單個case中,可以出現多個結果選項;
- Go語言不需要用break來明確退出一個case;
- 只有在case中明確添加fallthrough關鍵字,才會繼續執行緊跟的下一個case;
- 可以不設定switch之後的條件運算式,在此種情況下,整個switch結構與多個if…else…的邏輯作用等同。
迴圈
golang只支援for迴圈
for i:=0; i < 10; i++ { fmt.Println(i)}sum := 10for { sum++ if sum > 10{ break }}a := []int{1, 2, 3, 4, 5, 6}for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 { a[i], a[j] = a[j], a[i] }
Go語言的for迴圈同樣支援continue和break來控制迴圈,但是它提供了一個更進階的break,可以選擇中斷哪一個迴圈:
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) } } JLoop: