17、Go 流程控制 - for & range 循环语句
hi,我是温新
循环语句是在编程中常用的语句之一,而在 Go 语句中,循环语句是 for
。需要注意的是 Go 中没有 while
。
下面通过一个简单的案例学习 for 循环。
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
语句解释:
1、初始化变量 i = 0;
2、判断 i 小于 5 时,执行输出代码;
3、i 的值加 1
for 子语句
从上面的案例中可以看到,for 后面跟着 3 个子句,分别是:初始化子语句、条件子语句、后置子语句,这三个语句之间的顺序不能颠倒。
其中条件子语句
是必须的,条件子语句返回一个布尔型,结果为 true 时则执行代码块,fasle 则跳出循环。
package main
import "fmt"
func main() {
// 初始化子语句
x := 0
y := 5
// 只有条件子语句
for x < y {
// 后置子语句
x++
fmt.Println(x)
}
}
range 子语句
range
是一个特殊的子语句,其作用类型于迭代器,用途如下:
- 1、轮询数组或切片值中的每一个元素;
- 2、轮询字符串中的每一个字符;
- 3、轮休字典中的每个键值对;
- 4、持续读取一个通道类型值中的元素。
语法形式
for key,val := range collection {
}
字符串案例
package main
import "fmt"
func main() {
str := "hello 世界"
// 方式一:key 和 value
for key, val := range str {
fmt.Printf("字符串第%d个字符的值为%d\n", key, val)
}
// 方式二:忽略 key
for _, val := range str {
fmt.Println(val)
}
// 方式三:忽略 val
for key := range str {
fmt.Println(key)
}
// 方式四:忽略全部返回值
for range str {
fmt.Println("执行成功")
}
}
数组案例
package main
import "fmt"
func main() {
arr := map[string]string{"name": "王美丽", "gender": "女"}
for key, val := range arr {
fmt.Println(key, val)
}
}
请登录后再评论