-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46583
- shell命令
-
- 文章:(42)篇
- 阅读:154304
- Git教程
-
- 文章:(36)篇
- 阅读:234924
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131950
-
go语言中流程控制结构2017-12-31 18:05 阅读(3541) 评论(0)
语言中常用的流程控制结构有条件控制(if、switch)、循环控制(for、foreach、while)、跳转控制(goto),那么go语言里面的流程控制有哪些呢?
一、条件控制
1、if语句
基本结构如下:
if condition { /* some codes */ }
当有多个条件,可以:
if condition { // do something } else if condition2 { // do something else } else { // catch-all or default }
备注:1.关键字 if 和 else 之后的左大括号 { 必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行。2.不需要使用括号()将件包含起来。3.在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔。
案例如下:
package main import "fmt" func main() { a1 := 3 if (a1 <= 3) { fmt.Printf("a <= 3 \n") } else { fmt.Printf("a > 3 \n") } }
2、switch语句
基本结构如下:
switch expression { case val1: ... case val2: ... fallthrough case val3,val4,val5 ... default: ... }
备注:switch 语句必须遵循下面的规则:
1、前花括号 { 必须和 switch 关键字在同一行;
2、在一个 switch 中可以有任意数量的 case 语句;
3、case后面的值,比如val1、val2的类型,必须和expression类型一致;
4、case后面可以跟多个可能的值,使用逗号分隔,如case val3,val4,val5;
5、go中switch没有break,每一个 case 分支都是唯一的,从上到下,匹配成功,就会退出整个 switch 代码块;
6.、如果希望匹配后,能够继续进行匹配,可以使用关键字fallthrough。但fallthrough 必须是 case 语句块中的最后一条语句。若出现在其他位置,编译器将会报错:fallthrough statement out of place。如下:
案例如下:
package main import "fmt" func main() { a1 := 3 switch a1 { case 3 : fmt.Printf("a == 3 \n") case 5 : fmt.Printf("a == 5 \n") default : fmt.Printf("switch end \n") } }
3、select语句
---待补充---
二、循环控制
1.for语句
for循环语句的结果一般如下:
for 初始化语句; 条件语句; 修饰语句 {
}
比如,依次打印0~9个数字
package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Printf("i=%d \n", i); } }
for循环配合Range,能够发挥出php中foreach的功效。
三、跳转控制
在go语言中,可以使用goto 跳转到指定的标签。