Go学习笔记——第3章 表达式(下)控制流

Go学习笔记——第3章 表达式(下)控制流

控制流

1. lf - else

if condition {
}

条件表达式值必须是布尔类型,可以省略括号,且左花括号不能另起一行。

func main() {
	x := 3
	if x > 5 {
		println("a")
	} else if x < 5 && x > 0 {
		println("b")
	} else {
		println("c")
	}
}

//运行结果
b

比较特别的是出初始化语句的支持,可定义块局部变量或执行初始化函数。

if statement; condition {
}
func main() {
	x := 10

	if a , b := x + 1, x + 10; a < b { //定义一个或者多个局部变量
		println(a)
	} else {
		println(b)
	}
}

//运行结果
11

注:局部变量的有效范围包含整个 if / else 块

2 switch

swithc也用于选择执行,但具体场景会有所不同。相比if表达式,switch值列表要更加简洁。

func main() {
	a, b, c, x := 1, 2, 3, 2

	switch x {		//将x与case条件匹配

	case a, b:		//多个条件命中其一即可(or)
		println("a | b")
	case c: 		//单个匹配条件
		println("c")
	case 4:			//常量
		println("d")
	default:
		println("z")
	}
}
// 运行结果
a | b

switch同样支持初始化语句,按从上到下,从左到右顺序匹配case执行。只有全部匹配失败,才会执行default

func main() {
	switch x := 5; x {
	default:		//编译器确保不会先执行 default 块
		x += 100
		println(x)

	case 5:
		x += 50
		println(x)
	}
}

//运行结果
55

注:相邻的空的case不构成多条件匹配;不能出现重复的case 常量值;无须显示的执行break语句,case执行完毕后自动中断。

3. for

有三种for循环语句形式:

 1. for init; condition; post {}
 2. for condition {}  // 类似while
 3. for {}   		 //类型 while(true)

初始化表达式支持函数调用或者定义局部变量

for i := 0; i < 3; i++ {
}
//类似while() 或者 for ; x < 10; {}
for x < 10 {
	x++
}

for {
	break    //类似 while ture {} 或者 for true()
}

可用 for ... range完成数据迭代,支持字符串、数组、切片、字典、通道类型,返回索引、键值数据。

func main() {
	data := [3]string{"a", "b", "c"}
	for k, v := range data {
		println(k, v)
	}
}

//运行结果
0 a
1 b
2 c

允许返回单值, 用_忽略

4.break continue

break:用于switch、for、 select语句,终止整个语句块执行
continue:仅用于for循环终止当前循环,立即进入下一轮循环

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页