在上节,我们学习了选择结构,有两种方法实现:
If语句
Switch语句
today,我们接触一种全新的程序结构——循环结构,它能让代码更加有趣儿~
so,什么是循环结构?当某个条件成立时,周而复始地做某些事
比如:
人的一生如果还活着(条件),就应该不断学习(某些事)
只有一种循环学过别的编程语言的盆友,估计已经知道,有三种循环:
For循环
While循环
Do-While循环
但是在Golang中,只有一种循环——For循环
像"二八定律",20%的事物占了80%的重要性。Golang的设计遵循着"Less is More"(以少为多)的哲学思想
For循环语句For循环的完整格式如下:
有4个部份:
init part(初始化部份),只在第一次循环开始前执行一次(有局部变量作用域)
condition part(条件判断部份),在每次循环开始前,判断一次,如果为true则继续下一轮循环,否则退出循环
post part(变量变化部份),在每次循环结束后,执行一次
花括号内的for循环代码块,在条件成立时,被执行一次
理解代码最容易的方式当然是"Show me the demo":
流程是这样的:
i := 00 < 3truefmt.Println(i)i++i += 1i = i + 11 < 3truefmt.Println(i)i++2 < 3truefmt.Println(i)i++3 < 3false
在Golang中,前面的init/condition/post part三个部份都是可选的
省略init part我们把初始化变量的部份放到For循环外:
注意第一个分号不能省略
同样的,在init part声明的变量依然只在For循环内有效:
省略post part我们把变量自增的部份放到For代码块的最后一行:
注意最后一个分号不能省略
省略init/post part当init/post part都省略,只剩下condition part的时候,就跟While循环一模一样:
这时,两个分号都可以去掉,效果是一样的:
简洁多了~
最简洁的无限循环无限循环,又称为死循环。也就是For循环的条件永远成立:
其实当省略掉condition part时,条件默认为true,所以上面等价于:
Ctrl + C
time.Sleep(time.Second)
循环中的Break语句在Switch语句一节中,已经接触过Break语句,它用于提前结束Switch语句。
事实上,Break语句可用于三种语句内,分别是:
Switch语句
For语句
Select语句(先无视,涉及到通道的知识,也是一种选择结构)
Break语句作用都是用于提前结束上面三个语句
i==1
Continue语句Continue语句用于跳过当前循环,遇上continue后的代码不会被执行
i==1
* 注意区分continue与break的不同:
总结