Go笔记-流程控制

Posted ymkfnuiwgij

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go笔记-流程控制相关的知识,希望对你有一定的参考价值。

【if】
if 是用于测试某个条件的语句,如果该条件(逻辑型或布尔型)成立,则会执行大括号内的代码,第一个大括号必须和if 或者else同行,否则非法
 1 // 方式1
 2 if condition {
 3      //do something
 4 }
 5 // 方式2
 6 if condition {
 7      // do something
 8 }else{
 9      // do something
10 }
11 // 方式3
12 if condition1 {
13      // do something
14 } else if condition2 {
15      // do something else
16 } else {
17      // default
18 }
19 // 方式4
20 if initialization; condition{
21      // do something
22 }
23 if _,ok := f1();ok{
24     f2()
25 }
else-if 的嵌套不受次数限制,若有多个,建议将可能性大的放在前面
在方式4中的初始化语句中,建议声明变量,避免变量作用域带来的问题
 
【switch】
 1 // 方式1  变量值的匹配
 2 switch var1 {
 3     case val1:
 4         ...
 5     case val2:
 6         ...
 7     default:
 8         ...
 9 }
10 switch i{
11     case 10:
12         f1()
13     case 20:
14         f2()
15     defaul:
16         f3()
17 }
18  
19 // 方式2 变量判断类似if
20 switch {
21     case condition1:
22         ...
23     case condition2:
24         ...
25     default:
26         ...        
27 }
28 switch{
29     case i<10:
30         f1()
31     case i>10:
32         f2()
33     defalt:
34         f3()
35 }
36 // 方式3 包含变量声明初始化
37 switch initialization {
38     case val1:
39         ...
40     case val2:
41         ...
42     default:
43         ...
44 }
45 switch result := calculate();{
46     case result > 0:
47         f1()
48     case result < 0:
49         f2()
50     default:
51         f3()
52 }

 

备注:
    Go中的switch不需要break来跳出,自动会跳出控制,如果想不跳出控制的话,就在case后面添加fallthrough,这样就会自动执行这个case后面的case【case i>0:fallthrough】
 
 
【for】
 1 //for 初始化语句;条件语句;修饰语句{}
 2 for i := 0;i < 10; i++{
 3     fmt.Println(i)
 4 }
 5 // for 条件语句{}
 6 i := 0
 7 for i<100{
 8     fmt.Println(i)
 9     i++
10 }
11 // for ix,val := range coll{}
12 for key,val := range str{
13     fmt.Printf("index: %d value: %s",key,val)
14 }

 

 
 
【标签与goto】(在程序设计中不建议使用,这个在C中被诟病很久,但是Go语言的设计者为什么...)
标签的名称大小写敏感,为了提高可读性,建议使用大写字母
 1 page main
 2  
 3 func main(){
 4     i := 0
 5     HERE:
 6         fmt.Println(i)
 7         i++
 8         if i == 5{
 9             return
10         }
11         goto HERE
12 }
 
标签定义了要使用,和变量是一样的,这是Go语言的原则之一,程序中不允许出现不使用的代码。
 
 学习参考处:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md

以上是关于Go笔记-流程控制的主要内容,如果未能解决你的问题,请参考以下文章

Go实战学习笔记-1.3流程控制

Go语言自学系列 | go语言中的流程控制

Go语言自学系列 | go语言中的流程控制

Go语言--流程控制

Go语言精修(尚硅谷笔记)第五章

Go语言流程控制