从零学 Go:Go 语言中的分支和循环控制
从零学 Go:Go 语言中的分支和循环控制
前文回顾
前面的文章主要介绍了 Go 语言中的指针基本概念与相关用法以及常量与别名的基本使用。代码的实现一般有三种结构都是:
- 顺序结构:代码从上往下依次执行
- 分支结构:根据不同的条件,执行不同的语句
- 循环结构: 根据指定的条件,重复执行某段代码。
顺序结构是我们最常见的实现,比较简单,我们在本文来学习 Go 语言的分支和循环结构的用法。
分支和循环控制
Golang 的分支控制与其他语言一致,简单的表达样式如下:
if expression1 {
branch1
} else if expression2 {
branch2
} else {
branch3
}
Golang 中规定与 if
匹配的 {
必须与 if
和表达式位于同一行,否则会发生编译错误。同样的,else
也必须上一个分支的 }
位于同一行。表达式两边可以省略 ()
。
除了 if
关键值,Golang 中还提供了 switch
语句对大量的值和表达式进行判断。为了避免人为错误,switch
中的每一个 case 都是独立的代码块,不需要通过 break
关键字跳出 switch
选择体,如果需要继续执行接下来的 case
判断,需要添加 fallthrough
关键字对上下两个 case
进行连接。除了支持数值常量,Golang 的 switch
还能对字符串、表达式等复杂情况进行处理。一个简单的例子如下所示:
// 根据人名分配工作
name := "小红"
switch name {
case "小明":
fmt.Println("扫地")
case "小红":
fmt.Println("擦黑板")
case "小刚":
fmt.Println("倒垃圾")
default:
fmt.Println("没人干活")
}
在上面的代码中,每一个 case
都是字符串样式,且无需通过 break
控制跳出。
如果我们需要在 case
中判断表达式,在这种情况下 switch
后面不再跟判断变量,连判断的目标都没有了,如下例子所示:
// 根据分数判断成绩程度
score := 90
switch {
case score < 100 && score >= 90:
fmt.Println("优秀")
case score < 90 && score >= 80:
fmt.Println("良好")
case score < 80 && score >= 60:
fmt.Println("及格")
case score < 60 :
fmt.Println("不及格")
default:
fmt.Println("分数错误")
}
Golang 的循环体仅提供了 for
关键字,没有其他语言中提供的 while
或者 do-while
形式,基本样式如下:
for init;condition;end{
循环体代码
}
这其中,初始语句、条件表达式、结束语句都是可缺省的。如果三者都缺省,这将变成一个无限循环语句。可以通过 break
关键字跳出循环体,和使用 continue
关键字继续下一个循环。
小结
本文主要介绍了 Go 基于语法中的分支和循环控制结构。其中涉及到的 If 、Switch 和 for 等关键字,是我们日常编码所常用的。当我们在程序中操作大量同类型变量时,为了方便数据的存储和操作,我们需要借助容器的力量。 下面我们将介绍 Go 中的容器。
阅读最新文章,关注公众号:aoho求索
- 点赞
- 收藏
- 关注作者
评论(0)