5.5. 循环结构
循环概念#
所谓的循环就是重复的做同一件事情,我们先从生活的角度来理解一下循环。
洗 10 颗白菜
罚抄单词 100 遍
爱你 10 万遍
基本语法结构#
在 GO 语言中,我们有专门实现这种循环的结构就是 for 结构(GO 语言中只有 for 循环结构,没有 while,do-while 结构),基本语法结构如下:
for 表达式1;表达式2;表达式3{
循环体
}
表达式 1: 定义一个循环的变量,记录循环的次数
表达式 2:一般为循环条件,循环多少次
表达式 3:一般为改变循环条件的代码,使循环条件终有一天不再成立
循环体:重复要做的事情。
列子,输出,1 到 10#
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
计算 1-100 偶数的和#
在 for 语句中嵌套 if 条件判断
sum := 0
for i := 1; i <= 100; i++ {
if i%2 == 0 {
sum+=i
}
}
利用赋值算数符号,优化代码
sum := 0
for i := 0; i <= 100; i += 2 {
sum += i
}
跳转(出)语句#
关于 GO 语句中的跳转语句,有 break,continue,goto (与函数结合使用,后期讲解到函数在讲)
下面我们先来讲解 break.
根据前面的案例,我们发现,循环必须指定循环条件,在满足循环条件的时候执行循环,如果不满足循环的条件,可以跳出整个循环。
但是如果,我们没有指定循环条件,那么循环就成了死循环
,所谓的死循环指的就是一直循环,跳不出来了。
死循环语法#
怎样构建死循环呢?语法如下:
for {
fmt.Println('我爱你')
}
死循环(无限循环)的语法非常简单,就是什么循环条件也没有写。
break 语句#
break 的作用就是跳出本次循环
func main() {
var i int = 0
//死循环 循环没有出口
for {
//在有些程序循环中 不知道程序执行次数 只有条件满足时程序停止
if i >= 5 {
//跳出语句跳出当前循环
break
}
fmt.Println(i)
i++
}
}
continue 语句#
continue** 的作用是:** 立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环.
func main() {
sum := 0
for i := 0; i <= 100; i++ {
if i%2 == 1 {
//结束本次循环 继续下次循环
//如果在程序中入到continue后剩余代码不会执行 会回到循环的位置
continue
}
sum += i
}
fmt.Println(sum)
}
特殊的 FLAG 语句#
如果在代码中入到 goto 会跳到所定义的标志位
可以在一个循环中跳到另外一个循环中 可以在一个函数中跳到另外一个函数中
例子#
func main() {
goto FLAG
fmt.Println("hello world3")
fmt.Println("hello world4")
FLAG:
fmt.Println("hello world5")
fmt.Println("hello world6")
}
输出结果:
直接输出 5 6,跳出了 3 4.
死循环 goto 例子#
func main() {
//死循环
FLAG:
fmt.Println("hello world1")
goto FLAG
fmt.Println("hello world2")
}
这里就无限 goto 了。。。
推荐文章: