计算机编程语言中,流程控制语句很重要,能够让机器知道何时作什么事,作几回。主要有条件和循环语句。算法
Golang
只有一种循环:for
,只有一种判断:if
,还有一种特殊的switch
条件选择语句。编程
举个例子:segmentfault
// 判断语句 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
条件语句:code
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。