golang快速入门:流程控制

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: Go 语言的流程控制语句用于设定计算执行次序和逻辑结构,主要包括条件语句(if、else、else if)、分支语句(switch、case、select)、循环语句(for、range)和跳转语句(goto、break、continue)。条件语句无需圆括号,必须使用花括号;分支语句支持多条件合并和跨分支执行;循环语句仅支持 for 关键字,可通过 for-range 遍历集合;跳转语句支持标签结合,改变默认跳转逻辑。灵活组合这些控制语句可实现复杂业务逻辑。

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

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

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

条件语句

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

条件语句使用示例如下:

1、中断式

2、嵌套式

3、多段式

Go 语言的条件语句,需要注意以下几点:

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

分支语句

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

表达式使用示例

明确等值判断使用示例

分支合并

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

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

switch 总结

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

循环语句

1、for循环

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

2、无限循环

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

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

3、嵌套循环

实现乘法表

4、for-range 结构

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

循环总结:

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

跳转语句

  1. break 与 continue 语句

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

  1. 标签

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

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

  1. goto 语句

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

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


转载来源:https://juejin.cn/post/7311603506222415887

目录
打赏
0
16
16
1
138
分享
相关文章
|
11月前
|
Go
第五章 Golang程序流程控制
第五章 Golang程序流程控制
77 0
Golang 语言 beego 学习之安装和快速入门
Golang 语言 beego 学习之安装和快速入门
98 0
|
7月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
204 4
Golang语言之管道channel快速入门篇
|
7月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
101 4
Golang语言文件操作快速入门篇
|
7月前
|
Go
Golang语言之映射(map)快速入门篇
这篇文章是关于Go语言中映射(map)的快速入门教程,涵盖了map的定义、创建方式、基本操作如增删改查、遍历、嵌套map的使用以及相关练习题。
67 5
|
7月前
|
Go
Golang语言之切片(slice)快速入门篇
这篇文章是关于Go语言中切片(slice)的快速入门教程,详细介绍了切片的概念、定义方式、遍历、扩容机制、使用注意事项以及相关练习题。
64 5
|
7月前
|
Go
Golang语言之数组(array)快速入门篇
这篇文章是关于Go语言中数组的详细教程,包括数组的定义、遍历、注意事项、多维数组的使用以及相关练习题。
106 5
|
7月前
|
Go
Golang语言流程控制之条件判断篇
这篇文章介绍了Golang语言中的流程控制语句,包括if分支和switch语句的多种使用方式,如单分支、双分支、多分支条件判断以及switch的fallthrough语法。
51 4
|
7月前
|
Go
Golang语言流程控制之for循环结构篇
这篇文章详细介绍了Golang语言中的for循环结构,包括for循环的基本写法、引入、原理、死循环案例,for range键值循环的使用,以及break、continue、goto和return关键字在循环控制中的运用,并提供了练习题来加深理解。
59 0
Golang语言流程控制之for循环结构篇
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等