golang快速入门:流程控制

53 阅读3分钟

weedffdddd.jpg

可能这世界让你长大的方式极端了些

流程控制主要用于设定计算执行的次序,建立程序的逻辑结构。Go 语言的流程控制和其他编程语言类似,支持如下几种流程控制语句:

  • 条件语句:用于条件判断,对应的关键字有 if、else 和 else if
  • 分支语句:用于分支选择,对应的关键字有switch、case、select(用于通道)
  • 循环语句:用于循环迭代,对应的关键字有for、range
  • 跳转语句:用于代码跳转,对应的关键字有goto

根据具体的业务逻辑,灵活组合上述控制语言来实现相应的功能。

条件语句

条件语句的示例模板如下:

Untitled (10).jpeg

条件语句使用示例如下:

1、中断式

Untitled (11).jpeg

2、嵌套式

Untitled (12).jpeg

3、多段式

Untitled (13).jpeg Go 语言的条件语句,需要注意以下几点:

  • 条件语句不需要使用圆括号将条件包含起来 ();
  • 无论语句体内有几条语句,花括号 {} 都是必须存在的;
  • 左花括号 { 必须与 if 或者 else 处于同一行;
  • 在 if 之后,条件语句之前,可以添加变量初始化语句,使用 ; 间隔,比如上述代码可以这么写 if score := 100; score > 90 {}

分支语句

分支语句会根据传入条件的不同,选择不同的分支代码执行。

Untitled (14).jpeg

表达式使用示例

Untitled (15).jpeg

明确等值判断使用示例

Untitled (17).jpeg

分支合并

在 Go 语言中,我们可以用逗号分隔不同的分支条件来达到合并分支语句的目的,如 case 1,2。

如果你想要跨分支执行,可以通过一个 fallthrough 语句来声明

Untitled (18).jpeg

switch 总结

  • 单个 case 中,可以出现多个结果选项(通过逗号分隔)
  • 通过fallthrough 关键字,可以跨分支执行
  • 表达式和明确定定植判断有区别(switch 之后的条件表达式)

循环语句

1、for循环

Go 语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构。

Untitled (19).jpeg

2、无限循环

对于无限循环场景,可以通过不带循环条件的 for 语句实现。

通过 break 语句可以中断无限循环。

Untitled (20).jpeg

3、嵌套循环

实现乘法表

Untitled (22).jpeg

4、for-range 结构

Go 语言还支持通过 for-range 结构对(数组、切片、map)进行循环遍历。

Untitled (21).jpeg

循环总结:

  • 不支持 whie 和 do-while 结构的循环语句
  • 可以通过 for-range 结构对可迭代集合进行遍历

跳转语句

  1. break 与 continue 语句

Go 语言支持在循环语句中通过 break 语句跳出循环,通过 continue 语句进入下一个循环。

Untitled (23).jpeg

  1. 标签

Go 语言的 break 和 contine 与其他语言的不同之处在于支持与标签结合跳转到指定的标签语句,从而改变这两个语句的默认跳转逻辑,标签语句通过标签 + :进行声明:

Untitled (25).jpeg

Label在最外层for循环,此时break Label会直接跳出外层for循环,返回end

  1. goto 语句

Go 语言支持 goto 关键字,goto 语句的语义非常简单,就是跳转到本函数内的某个标签,如:

Untitled (24).jpeg

当第一次满足 j > 1 的条件时,代码就会跳转到 EXIT 标签指定的位置,继续后续代码执行。