GO语言基础语法 | 青训营笔记

99 阅读3分钟

1.3.1多分支控制

Ø 基本语法:

image.png

对上面基本语法的说明

  1. 多分支的判断流程如下:

    (1) 先判断条件表达式1 是否成立,如果为真,就执行代码块1

    (2) 如果条件表达式1 如果为假,就去判断条件表达式2 是否成立, 如果条件表达式2 为真,就执行代码块2

    (3) 依次类推

    (4) 如果所有的条件表达式不成立,则执行 else 的语句块。

  2. else 不是必须的。

  3. 多分支只能有一个执行入口。

Ø 看一个多分支的流程图(更加清晰)

image.png

1.3.2嵌套分支

Ø 基本介绍

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分 支外面的分支结构称为外层分支。

Ø 基本语法

image.png

应用案例1

参加百米运动会,如果用时8 秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。 输入成绩和性别。 代码:

    //分析思路
    //1.定义一个变量,来接收跑步使用秒数,float64
    //2.定义一个变量,来接收性别string
    //3.因为判断是嵌套的判断,因此我们会使用嵌套分支
    
    var second float64
    
    fmt.Println("请读秒数“)
    fmt.scanln(&second)
    
    if second <= 8 {
        //进入决赛
        va gender string
        fmt.Println("请输入性别")
        fmt.scanln(&gender)
        if gender == "男"{
            fmt.Println("进入决赛的男子组")
        }else{
            fmt.Println("进入决赛的女子组")
        }
    }else{
        fmt.Println("out...")
    }

1.4    switch 分支控制

1.4.1基本的介绍

  1. switch  语句用于基于不同条件执行不同动作,每一个 case  分支都是唯一的,从上到下逐一测

试,直到匹配为止。
2) 匹配项后面也不需要再加break

1.4.2基本语法

image.png

1.4.3switch 的流程图

image.png

对上图的说明和总结

  1. switch 的执行的流程是,先执行表达式,得到值,然后和case 的表达式进行比较,如果相等, 就匹配到,然后执行对应的case 的语句块,然后退出switch 控制。
  2. 如果switch 的表达式的值没有和任何的case 的表达式匹配成功,则执行default 的语句块。执行后退出switch 的控制.
  3. golang 的case 后的表达式可以有多个,使用 逗号 间隔.
  4. golang 中的case  语句块不需要写break ,  因为默认会有,即在默认情况下,当程序执行完case 语 句块后,就直接退出该switch 控制结构。

1.4.5switch 的使用的注意事项和细节

  1. case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以)

image.png

image.png

  1. case 后的各个表达式的值的数据类型,必须和 switch  的表达式数据类型一致

image.png

  1. case 后面可以带多个表达式,使用逗号间隔。比如 case  表达式1,  表达式2 ...

image.png

  1. case 后面的表达式如果是常量值(字面量),则要求不能重复

image.png

  1. case 后面不需要带break ,  程序匹配到一个case 后就会执行对应的代码块,然后退出switch,如 果一个都匹配不到,则执行 default
  2. default  语句不是必须的.
  3. switch  后也可以不带表达式,类似 if --else 分支来使用。【案例演示】

image.png

  1. switch  后也可以直接声明/定义一个变量,分号结束,不推荐。 【案例演示】

image.png

  1. switch  穿透-fallthrough  ,如果在case 语句块后增加fallthrough ,则会继续执行下一个case,也 叫switch 穿透

image.png

  1. Type Switch:switch  语句还可以被用于 type-switch  来判断某个 interface  变量中实际指向的 变量类型

image.png