Go语言程序流程结构有三种:顺序结构,选择结构和循环结构。顺序结构的程序设计最简单,按照解决问题的顺序写出相应的语句,自上而下依次执行。选择结构用于判断给定的条件,根据判断的结果来控制程序的流程。循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。在Go语言中,构成选择结构的语句包括:条件语句if、switch语句和select语句。本节主要讲解条件语句if和switch语句,select语句需要结合通道channel的知识背景,在channel那一章节再做介绍。
一、条件语句
if条件语句可以分为四类:if语句、if…else语句、if…else if…else语句、if嵌套语句。
1.1 if语句
if语句是最简单的条件语句,当布尔表达式为真时,执行大括号内部的代码,格式如下:
注释:可以用作对正文的补充在if语句里,赋值语句也可以放在关键词if之后、布尔表达式之前,并以分号相隔,示例如下:
1.2 if···else 语句
布尔表达式为true时执行语句1,否则执行语句2,格式如下:
示例如下:
1.3 if···else if···else 语句
当有多个分支结构时,可以采用if…else if…else语句。即当布尔表达式1为true时执行语句1,当布尔表达式1为false、布尔表达式2为true时执行语句2,当布尔表达式1和2均为false时执行语句3。格式如下:
示例如下:
1.4 if嵌套语句
if嵌套语句,即在选择结构内部也有一个选择结构。if嵌套语句可以有多种形式,前三种条件语句可以相互嵌套。现以最简单的if语句嵌套在if语句为例,格式如下:
示例如下:
二、switch语句
switch语句,根据传入的条件的不同,执行不同的语句。
注:a. switch语句从上至下执行,直到找到匹配项;
b. switch中的每一个case默认有break功能,匹配项之后的case条件不再关注;
c. case之后的条件可能有多个满足条件,使用逗号隔开,如:case s2,s3
d. 如果所有case条件都不满足,执行default语句;
e. 如果switch后面无表达式,则默认为true;
f. 当一个case之后带有语句fallthrough,则强制执行下一个case子句,不论下一个case条件是否满足;若fallthrough位于最后一个case子句中,则强制执行default语句。另外,fallthrough 语句应该是 case子句中的最后一个语句。如果它出现在 case 子句中间,编译器将会报错。
示例如下:
参考资料
[1] 许式伟,吕桂华.Go语言编程[M].北京:人民邮电出版社,2012:38-39.
请发表评论