跳转至

控制流程

更新时间 2021-08-30

关键字

关键字 作用
if
else
switch
case
fallthrough
default
goto 跳转
for
continue
break

if-else

Go
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main
import "fmt"

func somenumber() int {
    return -7
}
func main() {
    if num := somenumber(); num < 0 {
        fmt.Println(num, "is negative")
    } else if num < 10 {
        fmt.Println(num, "has 1 digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }

    fmt.Println(num)
}

switch-case-default-fallthrough

Go
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    sec := time.Now().Unix()
    rand.Seed(sec)
    i := rand.Int31n(10)

    switch i { //switch后的表达式可以省略
    case 0:
        fmt.Print("zero...")
        //无需break即可跳出
    case 1:
        fmt.Print("one...")
        fallthrough  //faltthrough,进入下一分支
    case 2,3,4,5:    //使用逗号来分隔case后的多个表达式
        fmt.Print("two...")

    default:   //default分支可省略
        fmt.Print("no match...")
    }

    fmt.Println("ok")
}

for-continue-break

Go
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
func main() {
    sum := 0
    for i := 1; i <= 100; i++ {
        sum += i
        if sum == 10 {
            break //跳出循环
        } else {
            continue //继续循环
        }
        //do something there
    }
    fmt.Println("sum of 1..100 is", sum)
}