流程控制主要用于设定计算执行的次序,建立程序的逻辑结构。Go 语言的流程控制和其他编程语言类似,支持如下几种流程控制语句:
- 条件语句:用于条件判断,对应的关键字有
if
、else
和else if
; - 分支语句:用于分支选择,对应的关键字有
switch
、case
和select
(用于通道,后面介绍协程时会提到); - 循环语句:用于循环迭代,对应的关键字有
for
和range
; - 跳转语句:用于代码跳转,对应的关键字有
goto
。
在实际的使用中,往往会根据具体的业务逻辑,灵活组合上述控制语言来实现相应的功能。
接下来,我们来简单介绍下各种流程控制语句的用法,首先从条件语句开始。
条件语句的示例模板如下:
// if
if condition {
// do something
}
// if...else...
if condition {
// do something
} else {
// do something
}
// if...else if...else...
if condition1 {
// do something
} else if condition2 {
// do something else
} else {
// catch-all or default
}
有其他编程语言基础的同学理解起来毫不费力,我们可以编写一个简单的条件语句示例代码如下:
score := 100
if score > 90 {
fmt.Println("Grade: A")
} else if score > 80 {
fmt.Println("Grade: B")
} else if score > 70 {
fmt.Println("Grade: C")
} else if score > 60 {
fmt.Println("Grade: D")
} else {
fmt.Println("Grade: F")
}
这段代码可用于打印指定分数对应的等级。
关于 Go 语言的条件语句,需要注意以下几点:
- 条件语句不需要使用圆括号将条件包含起来
()
; - 无论语句体内有几条语句,花括号
{}
都是必须存在的; - 左花括号
{
必须与if
或者else
处于同一行; - 在
if
之后,条件语句之前,可以添加变量初始化语句,使用;
间隔,比如上述代码可以这么写if score := 100; score > 90 {