5.2、循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
与其他主流的编程语言不一样。Go语言的循环语句只支持 for 关键字,而不支持 while 和 do-while结构。
1、for循环
原始for循环
通过关系表达式 或 逻辑表达式控制循环,语法如下:
for 布尔表达式 {}
无限死循环
for true {
fmt.Println("hello world")
}
// 或者
for {
fmt.Println("hello world")
}
简答循环案例
count := 0 //初始化语句
for count < 100 { // 条件判断
fmt.Println("hello world")
count++ // 步进语句
}
for循环的三要素
将初始化语句、条件判断、步进语句格式固定化的循环方式,本质上和上面的for循环没啥区别。
for init;condition;post {
// 循环体语句
}
- init: 初始化语句,一般为赋值表达式,给控制变量赋初始值。
- condition:条件判断,一般是关系表达式或者逻辑表达式,循环控制条件。
- post: 步进语句,一般为赋值表达式,给控制变量增量或者减量。
for count := 0;count < 101; count++ {
fmt.Println(count)
}
/*
// 步进为2
for count := 0;count < 101; count += 2 {
fmt.Println(count)
}
*/
遍历for循环
我们有的时候要遍历 字符串 或者 循环遍历数组,这个时候我们用遍历for循环。
// 1. 遍历数组
nameList := [...]string{"sbh", "sgg", "xhz"}
for k, name := range nameList { // k 表示索引值,如果不要 可以用 _ 匿名变量
fmt.Println(k, name)
}
// 输出
0 sbh
1 sgg
2 xhz
// 2. 遍历字符串
name := "sbh"
for _, v := range name {
fmt.Println(string(v))
}
// 输出
s
b
h
2、退出循环
如果想提前结束循环(在不满足结束条件的情况下结束循环),可以用 break 和 continue关键字。
break
当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。
for i := 0; i < 10; i++ {
if i == 8 {
break
}
fmt.Println(":", i)
}
continue
不同于break退出整个循环,continue指的是退出当次循环。
for i := 0; i < 10; i++ {
if i == 8 {
continue
}
fmt.Println(":", i)
}
在一个循环体语句中又包含另一个循环语句,称为循环嵌套。