zoukankan      html  css  js  c++  java
  • Go语言流程控制(六)

    go语言的流程控制主要有if , for和switch。

    if else(分支结构)

    go语言的if判断:

    func main() {
        score:=65
        if score>=90{
            fmt.Println("A")
        }else if score>=80{
            fmt.Println("B")
        }else{
            fmt.Println("C")
        }
    }

    需要注意的两点:

    1. 表达式不可以使用 () 

    2. 起始花括号必须紧跟表达式后面,不可以另起一行

    除此之外,if 判断写法还有另一种写法:

    func main() {
        if score:=65; score>=90{
            fmt.Println("A")
        }else if score>=80{
            fmt.Println("B")
        }else{
            fmt.Println("C")
        }
      fmt.Println(score) // 报错,获取不到score }

    这种写法是把变量的定义写在表达式里了,这样写的作用是把变量定义在了局部。

    for(循环结构)

    for循环结构与其他语言也差不多:

    for 初始语句;条件表达式;结束语句{
        循环体语句
    }

    需要注意:

    1. for后面不可以加 ()

    2.花括号与if中的一样,不可以另起一行

    例子:

    func main() {
        for i:=0;i<10;i++{
            fmt.Println(i)
        }
    }

    for循环的初始语句可以被忽略,但是初始语句后的分号必须要写,例如:

    func main() {
        i:=0
        for ;i<10;i++{
            fmt.Println(i)
        }
    }

    for循环的初始语句和结束语句都可以省略,例如:

    func main() {
        i:=0
        for i<10{
            fmt.Println(i)
            i++
        }
    }

    switch case

    基本用法:

    func main() {
        week:=3
        switch week {
        case 0:
            fmt.Println("周日")
        case 1:
            fmt.Println("周一")
        case 2:
            fmt.Println("周二")
        case 3:
            fmt.Println("周三")
        case 4:
            fmt.Println("周四")
        case 5:
            fmt.Println("周五")
        default:
            fmt.Println("周六")
        }
    }

    每个switch只能有一个default

    一个分支可以有多个值,多个case值中间使用英文逗号分隔:

    func main() {
        num:=1
        switch num {
        case 1,3,5,7,9:
            fmt.Println("这是奇数")
        case 2,4,6,8,0:
            fmt.Println("这是偶数")
        default:
            fmt.Println(num)
        }
    }

    也可以把赋值放在switch里:

    func main() {
        switch num:=1; num {
        case 1,3,5,7,9:
            fmt.Println("这是奇数")
        case 2,4,6,8,0:
            fmt.Println("这是偶数")
        default:
            fmt.Println(num)
        }
    }

    分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量。例如:

    func main() {
        score:=90
        switch  {
        case score>=90:
            fmt.Println("优秀")
        case score>=80:
            fmt.Println("良好")
        case score>=60:
            fmt.Println("及格")
        }
    }

    fallthrough 可以执行满足条件的case的下一个case:

    func main() {
        b:=true
        switch b {
        case true:
            fmt.Println(1)
            fallthrough
        case false:
            fmt.Println(2)
        }
    }

    如上,不加 fallthrough 只打印 1,加上 fallthrough 打印 1 和 2

  • 相关阅读:
    mysql表检查分析优化
    mysql表存储
    mysql表空间文件
    mysql回滚日志
    mysql重做日志
    mysql二进制日志
    最佳高质量字体
    mysql存储引擎
    如何提取app软件的apk格式中的字体?
    tar split命令
  • 原文地址:https://www.cnblogs.com/wjaaron/p/11485926.html
Copyright © 2011-2022 走看看