Go 语言基础语法4 | 青训营笔记

89 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天,今天学习的课程是Go 语言基础 - 基础语法

1、分支结构

1、if

1、单分支

【1】基本语法 if 条件表达式 { 逻辑代码 } 当条件表达式为ture时,就会执行得的代码。 PS:条件表达式左右的()可以不写,也建议不写 PS:if和表达式中间,一定要有空格 PS:在Golang中,{}是必须有的,就算你只写一行代码 PS:if后面可以并列的加入变量的定义

【2】代码练习:

package main
import "fmt"
func main(){
        //实现功能:如果口罩的库存小于30个,提示:库存不足:
        //var count int = 100
        //单分支:
        // if count < 30 {
        //  fmt.Println("对不起,口罩存量不足")
        // }
        //if后面表达式,返回结果一定是true或者false,
        //如果返回结果为true的话,那么{}中的代码就会执行
        //如果返回结果为false的话,那么{}中的代码就不会执行
        //if后面一定要有空格,和条件表达式分隔开来
        //{}一定不能省略
        //条件表达式左右的()是建议省略的
        //在golang里,if后面可以并列的加入变量的定义:
        if count := 20;count < 30 {
                fmt.Println("对不起,口罩存量不足")
        }
}
2、双分支

【1】基本语法 if 条件表达式 { 逻辑代码1 } else { 逻辑代码2 } 当条件表达式成立,即执行逻辑代码1,否则执行逻辑代码2。{}也是必须有的。

PS:下面的格式是错误的: if 条件表达式 { 逻辑代码1 } else { 逻辑代码2 }

PS:空格加上,美观规范

【2】代码练习:

package main
import "fmt"
func main(){
        //实现功能:如果口罩的库存小于30个,提示:库存不足,否则提示:库存充足
        //定义口罩的数量:
        var count int = 70
        if count < 30 { //这个条件表达式返回的是true的话,后面{}执行了
                fmt.Println("库存不足")
        } else {//count >= 30
                fmt.Println("库存充足")
        }
        //双分支一定会二选一走其中一个分支。
        
}
3、多分支

【1】基本语法 if 条件表达式1 { 逻辑代码1 } else if 条件表达式2 { 逻辑代码2 } ....... else { 逻辑代码n }

【2】代码练习:

package main
import "fmt"
func main(){
        //实现功能:根据给出的学生分数,判断学生的等级:
        // >=90  -----A
        // >=80  -----B
        // >=70  -----C
        // >=60  -----D
        // <60   -----E
        //方式1:利用if单分支实现:
        //定义一个学生的成绩:
        var score int = 18
        //对学生的成绩进行判定:
        // if score >= 90 {
        //  fmt.Println("您的成绩为A级别")
        // }
        // if score >= 80 && score < 90 {
        //  fmt.Println("您的成绩为B级别")
        // }
        // if score >= 70 && score < 80 {
        //  fmt.Println("您的成绩为C级别")
        // }
        // if score >= 60 && score < 70 {
        //  fmt.Println("您的成绩为D级别")
        // }
        // if score < 60 {
        //  fmt.Println("您的成绩为E级别")
        // }
        //上面方式1利用多个单分支拼凑出多个选择,多个选择是并列的,依次从上而下顺序执行,即使走了第一个分支,那么其它分支也是需要判断
        //方式2:多分支:优点:如果已经走了一个分支了,那么下面的分支就不会再去判断执行了
        // if score >= 90 {
        //  fmt.Println("您的成绩为A级别")
        // } else if score >= 80 {//else隐藏:score < 90
        //  fmt.Println("您的成绩为B级别")
        // } else if score >= 70 {//score < 80
        //  fmt.Println("您的成绩为C级别")
        // } else if score >= 60 {//score < 70
        //  fmt.Println("您的成绩为D级别")
        // } else {//score < 60
        //  fmt.Println("您的成绩为E级别")
        // } //建议你保证else的存在,只有有了else才会真正 起到多选一 的效果
        if score > 10 {
                fmt.Println("aaa")
        } else if score > 6{
                fmt.Println("bbb")
        }
}

2、switch

【1】基本语法: switch 表达式 { case 值1,值2,.….: 语句块1 case 值3,值4,...: 语句块2 .... default: 语句块 }

【2】代码练习:

package main
import "fmt"
func main(){
        //实现功能:根据给出的学生分数,判断学生的等级:
        // >=90  -----A
        // >=80  -----B
        // >=70  -----C
        // >=60  -----D
        // <60   -----E
        //给出一个学生分数:
        var score int = 187
        //根据分数判断等级:
        //switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。
        //default是用来“兜底”的一个分支,其它case分支都不走的情况下就会走default分支
        //default分支可以放在任意位置上,不一定非要放在最后。
        switch score/10 {
                case 10 :
                        fmt.Println("您的等级为A级")
                case 9 :
                        fmt.Println("您的等级为A级")
                case 8 :
                        fmt.Println("您的等级为B级")
                case 7 :
                        fmt.Println("您的等级为C级")
                case 6 :
                        fmt.Println("您的等级为D级")
                case 5 :
                        fmt.Println("您的等级为E级")
                case 4 :
                        fmt.Println("您的等级为E级")
                case 3 :
                        fmt.Println("您的等级为E级")
                case 2 :
                        fmt.Println("您的等级为E级")
                case 1 :
                        fmt.Println("您的等级为E级")
                case 0 :
                        fmt.Println("您的等级为E级")
                default:
                        fmt.Println("您的成绩有误")
        }
        
}

【3】注意事项:

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

(2)case后面的值如果是常量值(字面量),则要求不能重复

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

(4)case后面可以带多个值,使用逗号间隔。比如 case 值1,值2...

(5)case后面不需要带break

(6)default语句不是必须的,位置也是随意的。

(7)switch后也可以不带表达式,当做if分支来使用

(8)switch后也可以直接声明/定义一个变量,分号结束,不推荐