Golang入门笔记(5)—— 流程控制之switch分支

        switch 有切换,开关的意思,我想这也许就是代码上的意义,通过表达式计算出一个值,然后进行状态的匹配和然后进行流程上的切换。

基本语法:

switch 表达式 {

        case 值a1,值a2, ...
            语句块
        case 值b1,值b2, ...
            语句块
        ...
        default :
            语句块

}

        简单记忆: switch 就是像是一个册封了的权力的头衔,表达式就像是一个将军。 当表达式给与了将军的头衔之后,他便开始开疆辟土 { } ,来了一个块作用域 ; 这里面有很多 表达式 计算出的值,就指向了 ,这个将军即将要去的地方,有茶馆,有电影院,有寺庙,有酒店,有图书管,有健身管, 语句块里面就像是将军在此场景下要做的事。default : 是默认,就是都没地方可去的时候,将军默认要做的事情,比如:睡觉休息。

package main

import "fmt"

func main() {

	switch placeNo := 4; placeNo % 10 {
	case 1, 2, 3:
		fmt.Println("1喝茶")
		fmt.Println("2喝茶")
		fmt.Println("3喝茶")
	case 4, 5:
		fmt.Println("4看书")
		fmt.Println("5看书")
		fallthrough
	case 6:
		fmt.Println("6看书")
	case 7, 8, 9:
		fmt.Println("7健身")
		fmt.Println("8健身")
		fmt.Println("9健身")
	default:
		fmt.Println("啥也不干,在家休息")
	}

}

注意事项:

        1 . case 的值,不能重复 ,否则 build编译的时候 ,会 dupicate case。

        2 . switch 后面的表达式,可以是一个常量值,变量,或可以取到值得函数 都可以。

        3 . case 后的值的数据类型,必须和表达式的数据类型一致。

        4 . case后面可以跟多种情况值, 如 本例。

        5 . default 语句非必须,位置可以随意。一般放在最后。

        6 . switch 可以不带表达式,只用case,当if 分支来使用。

        7 . 和if一样支持在switch 后面定义变量,用分号分隔。但并不推荐。

        8 . switch 穿透:利用fallthrough 关键字,如果在case 语句块后,增加 fallthrough ,会继续执行下一个case。如上的代码输出:4看书 5看书,就是因为 fallthrough 向下击穿了一个case,一个fallthrough,击穿的case, 有且仅有1一个。

Golang入门笔记(5)—— 流程控制之switch分支_第1张图片

你可能感兴趣的:(开辟新大陆,——,Golang入门笔记,golang,开发语言,后端)