Go语言流程控制
# 1.选择语句 if..
- 条件表达式的值必须是布尔类型(Go 语言中没有非零即真的概念)
- 条件表达式前面可以添加初始化语句
- 不需要编写圆括号
- 左大括号必须和条件语句在同一行
- 值得一提的是 Go 语言中没有 C 语言中的三目运算符, 所以 C 语言中三目能干的在 Go 语言中都只能通过 if else 的形式来完成
# 2.选择结构(switch..case)
- 和 if 一样,表达式前面可以添加初始化语句
- 和 if 一样,不需要编写圆括号
- 和 if 一样,左大括号必须和表达式在同一行
- case 表达式的值不一定要是常量, 甚至可以不用传递
- 一个 case 后面可以有多个表达式, 满足其中一个就算匹配
- case 后面不需要添加 break
- 可以在 case 语句块最后添加 fallthrough,实现 case 穿透
- case 后面定义变量不需要添加{}明确范围
package main
import "fmt"
func main() {
//第一种
switch num := 3; num {
case 1, 2, 3, 4, 5:
fmt.Println("工作日")
case 6, 7:
fmt.Println("非工作日")
default:
fmt.Println("Other...")
}
//第二种
//case后面不用编写break, 不会出现case穿透问题
//如果想让case穿透,必须在case语句块最后添加fallthrough关键
switch num := 1; num {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 5:
fmt.Println("工作日")
fallthrough
case 6:
fmt.Println("结束")
case 7:
fmt.Println("非工作日")
default:
fmt.Println("Other...")
}
}
# 3.循环结构(for )
除了实现基本的循环结构以外,Go 语言还实现了一种高级 for 循环for...range 循环,for...range 循环可以快速完成对字符串、数组、slice、map、channel遍历。 格式:for 索引, 值 := range 被遍历数据{ content }
package main
import "fmt"
func main() {
// 1.定义一个数组
arr := [3]int{1, 3, 5}
// 2.快速遍历数组
// i用于保存当前遍历到数组的索引
// v用于保存当前遍历到数组的值
for i, v := range arr {
fmt.Println(i, v)
}
}
0 1
1 3
2 5
# 4.四大跳转
return、break、continue、goto