一、一个小需求
我想要打印10遍hello world,你想怎么编写呢?
// 需求:打印10遍"hello world"fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")
平常打印输出一个俩个没问题,那一旦要求100遍,1000遍怎么做呢?
go中进行打印10遍hello world,使用for循环
// 循环for i := 0; i < 10; i++ {fmt.Println("hello world")}
二、for循环
一个for循环解决了上边的小需求,那怎么使用for循环呢
1. for循环结构体
for 循环变量初始化;循环判断条件;循环变量迭代 {循环执行语句}
可以了解使用for,需要上边的四个要素:循环变量初始化;循环判断条件;循环变量迭代;循环执行语句
2. 循环四要素
- 循环初始化:声明在循环过程中,进行判断和变量迭代,进行控制循环次数
- 循环判断条件:为true时,进行循环体下一步;为false则结束循环
- 循环变量迭代:进行计算循环次数,一般使用变量累加进行计算
- 循环执行语句:TODO 我们待开发的功能
3. 循环四要素的执行顺序
- 第一步:循环初始化
- 第二步:循环判断条件(为true进行下边步骤)
- 第三步:循环执行语句
- 第四步:循环变量迭代
- 第五步:循环执行第二步–至–第四步 直到判断条件为false,退出循环
如果判断条件一直为true,那么该for循环,为死循环(开发过程需要禁止)
4. 尝试for
// 需求:循环五次,并打印每次初始化值for i := 0; i < 5; i++ {fmt.Println("i = ", i)}//i = 0//i = 1//i = 2//i = 3//i = 4
三、for变体之while
go中没有while循环结构,但可以通过for进行变体,达到while功能的要求
// 循环初始化var i int = 0// 循环判断for i < 5 {// 循环语句fmt.Println("i = ", i)// 循环迭代i++}//i = 0//i = 1//i = 2//i = 3//i = 4
结构体中,可以看出,如果把for换成while,是不是就是大家熟悉的while循环呢?
四、for变体之do…while
go中没有do…while循环结构,也可以通过for进行变体,达到do…while功能的功能
// 循环初始化var j int = 0for {// 循环语句fmt.Println("j = ", j)// 循环迭代j++// 循环判断if j >= 5 {break}}//j = 0//j = 1//j = 2//j = 3//j = 4
五、for循环遍历列表
使用range进行遍历序列的值
var str = "hello world"for index, val := range str {fmt.Printf("下标index=%d, 遍历值val=%q\n", index, val)}//下标index=0, 遍历值val='h'//下标index=1, 遍历值val='e'//下标index=2, 遍历值val='l'//下标index=3, 遍历值val='l'//下标index=4, 遍历值val='o'//下标index=5, 遍历值val=' '//下标index=6, 遍历值val='w'//下标index=7, 遍历值val='o'//下标index=8, 遍历值val='r'//下标index=9, 遍历值val='l'//下标index=10, 遍历值val='d'
六、跳出语句
刚刚在变体do…while过程中,我们使用到了break,那么为什么要使用他,他有什么作用呢?
break、continue这俩个都是出现在循环结构体中,进行循环的跳出
break: 结束当前结构体循环
continue: 结束本次循环
for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println("i=", i)if i > 5 {break}}//i= 1//i= 3//i= 5//i= 7
可以看到,偶数循环过程中,进行了跳过处理,当i大于5的时候进行中断,当结果为7时,进行循环中断
本章讲了一些for循环的基本知识和for的几种变体使用
附
- 知道循环和使用
- 熟练使用for的几种变体
- 熟练使用break和continue