流程控制语句
计算机编程语言中,流程控制语句很重要,可以让机器知道什么时候做什么事,做几次。主要有条件和循环语句。
Golang
只有一种循环:for
,只有一种判断:if
,还有一种特殊的switch
条件选择语句。
一、条件语句
举个例子:
// 判断语句
if a > 0 {
fmt.Println("a>0")
} else {
fmt.Println("a<=0")
}
当a > 0
时打印a>0
,否则打印a<=0
。其中条件a > 0
不需要加小括号。
条件语句表示如果什么,做什么,否则,做什么。
几种判断形式为:
if a > 0{
}
只有if
。
if a > 0{
}else{
}
有if
以及else
。
if a > 0{
}else if a == 0 {
}else{
}
中间可混入else if
。
如果中间的条件太多的话,可以使用switch
条件语句:
num := 4
switch num {
case 3:
fmt.Println(3)
case 4:
fmt.Println(4)
case 5:
fmt.Println(5)
default:
fmt.Println("not found")
这种语句会从case
一个个判断,如果找到一个case
符合条件,那么进入该case
执行指令,否则进入default
。
上面num := 4
将会进入case 4
,打印数字4后结束。如果num := 5
,将会打印数字5后结束。如果num := 8
,会打印字符串 not found。
二、循环语句
循环语句:
// 循环语句
for i := 9; i <= 10; i++ {
fmt.Printf("i=%d\n", i)
}
其中i
是局部变量,循环第一次前被赋予了值9
,然后判断是否满足i<=10
条件,如果满足那么进入循环打印,每一次循环后会加1
,也就是i++
,然后继续判断是否满足条件。
形式为:
for 起始状态; 进入循环需满足的条件; 每次循环后执行的指令 {
}
你也可以死循环:
// 死循环语句
a = 0
for {
if a >= 10 {
fmt.Println("out")
// 退出循环
break
}
a = a + 1
if a > 5 {
continue
}
fmt.Println(a)
}
死循环直接for {}
,后面不需要加条件,然后当a>=10
时跳出循环可以使用break
,表示跳出for {}
,对于a > 5
,我们不想打印出值,可以使用continue
跳过后面的语句fmt.Println(a)
,提前再一次进入循环。
切片
和字典
都可以使用循环来遍历数据:
e := []int64{1, 2, 3} // slice
f := map[string]int64{"a": 3, "b": 4} // map
// 循环切片
for k, v := range e {
fmt.Println(k, v)
}
// 循环map
for k, v := range f {
fmt.Println(k, v)
}
切片遍历出来的结果为:数据下标,数据,字典遍历出来的结果为:数据的键,数据的值:
0 1
1 2
2 3
3 3
a 3
b 4
f 5
系列文章入口
我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。
- 数据结构和算法(Golang实现)(1)简单入门Golang-前言
- 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数
- 数据结构和算法(Golang实现)(3)简单入门Golang-流程控制语句
- 数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法
- 数据结构和算法(Golang实现)(5)简单入门Golang-接口
- 数据结构和算法(Golang实现)(6)简单入门Golang-并发、协程和信道
- 数据结构和算法(Golang实现)(7)简单入门Golang-标准库
- 数据结构和算法(Golang实现)(8.1)基础知识-前言
- 数据结构和算法(Golang实现)(8.2)基础知识-分治法和递归
- 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号
- 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
- 数据结构和算法(Golang实现)(11)常见数据结构-前言
- 数据结构和算法(Golang实现)(12)常见数据结构-链表
- 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
- 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
- 数据结构和算法(Golang实现)(15)常见数据结构-列表
- 数据结构和算法(Golang实现)(16)常见数据结构-字典
- 数据结构和算法(Golang实现)(17)常见数据结构-树
- 数据结构和算法(Golang实现)(18)排序算法-前言
- 数据结构和算法(Golang实现)(19)排序算法-冒泡排序
- 数据结构和算法(Golang实现)(20)排序算法-选择排序
- 数据结构和算法(Golang实现)(21)排序算法-插入排序
- 数据结构和算法(Golang实现)(22)排序算法-希尔排序
- 数据结构和算法(Golang实现)(23)排序算法-归并排序
- 数据结构和算法(Golang实现)(24)排序算法-优先队列及堆排序
- 数据结构和算法(Golang实现)(25)排序算法-快速排序
- 数据结构和算法(Golang实现)(26)查找算法-哈希表
- 数据结构和算法(Golang实现)(27)查找算法-二叉查找树
- 数据结构和算法(Golang实现)(28)查找算法-AVL树
- 数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
- 数据结构和算法(Golang实现)(30)查找算法-2-3-4树和普通红黑树