if控制语句
说明:(1)if后面的条件语句不用加括号
(2)if后面可以跟一个简单的初始化语句,并以分号分割,初始化语句中的变量的作用域是整个if语句块
(3)if语句的条件语句需要尽量简单
(4)go语言没有条件运算语句(例如,a>b?1:0)
package main
import (
"fmt"
)
func main() {
b := 10
if a := 10; a < b {
fmt.Println("a < b")
} else if a == b {
fmt.Println("a == b")
} else {
fmt.Println("a > b")
}
}
switch控制语句
fallthrough的作用:不再判断下一个case(注意是下一个,不是下面所有的case子句)
package main
import "fmt"
func main() {
switch letter := 'y'; letter {
case 'y', 'Y':
fmt.Println("yes")
fallthrough
case 'n', 'N':
fmt.Println("no")
case 'a', 'A':
fmt.Println("all")
}
}
运行结果
package main
import "fmt"
func main() {
switch letter := 'y'; letter {
case 'y', 'Y':
fmt.Println("yes")
fallthrough
case 'n', 'N':
fmt.Println("no")
case 'a', 'A':
fmt.Println("all")
}
}
switch语句中,default可以放在任意位置,不影响处理逻辑
举例
switch letter := 'h'; letter {
default:
fmt.Println("default")
case 'y', 'Y':
fmt.Println("yes")
fallthrough
case 'n', 'N':
fmt.Println("no")
case 'a', 'A':
fmt.Println("all")
}
运行结果
default 成功: 进程退出代码 0.
for循环控制语句
go语言中只有1种循环,那就是for
// 数组类型控制的for循环
func for_array() {
arr := [4]int{1, 2, 3}
for idx := range arr {
fmt.Println(arr[idx])
}
}
//切片类型控制的for循环
func for_slice() {
arr := [...]int{1, 2, 3, 4, 5, 6}
sli := arr[4:]
for idx := range sli {
fmt.Println(sli[idx])
}
}
// make切片控制的for循环
func for_slice2() {
sli := make([]int, 3)
sli[0] = 1
sli[1] = 2
for idx := range sli {
fmt.Println(sli[idx])
}
}
运行结果:
1
2
0
成功: 进程退出代码 0.
// map控制的for循环
func for_map() {
student_list := map[string]int{"name_a": 1, "name_b": 2, "name_c": 3}
for k, _ := range student_list {
fmt.Println(k)
}
for _, v := range student_list {
fmt.Println(v)
}
for k, v := range student_list {
fmt.Println(k, v)
}
}
大道至简

浙公网安备 33010602011771号