Skip to content

控制流程 ​

更新时间 2021-08-30

关键字 ​

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

if-else ​

go
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
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
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)
}