go语言快速入门:流程控制(7)
来源:互联网 发布:三维软件 编辑:程序博客网 时间:2024/05/23 19:09
go语言中没有do-while,switch更加灵活,支持初始化子语句,这篇文章中将会就go的循环/分支等流程控制语句进行简单介绍。
if语句
写法和其他语言基本一致,不过多层else if的时候需要注意{要写在一行,否则通不过编译也无法进行go fmt
例子代码
[root@liumiaocn goprj]# cat basic-if.gopackage mainfunc main() { //pattarn 1 score := 75 if score < 60 { println("Grade: D") } else if score < 70 { println("Grade: C") } else if score < 80 { println("Grade: B") } else if score <= 100 { println("Grade: B") } else { println("Grade: undefined") } //pattarn 2 if score := 45; score < 60 { println("Grade: D") } else if score < 70 { println("Grade: C") } else if score < 80 { println("Grade: B") } else if score <= 100 { println("Grade: B") } else { println("Grade: undefined") }}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-if.goGrade: BGrade: D[root@liumiaocn goprj]#
switch-case语句
例子代码
[root@liumiaocn goprj]# cat basic-switch.gopackage mainimport "fmt"func main() { //pattarn 1 weekday := "FRI" switch weekday { case "MON": fmt.Println("Monday...") case "TUE": fmt.Println("Tuesday...") case "WED": fmt.Println("Wednesday...") case "THU": fmt.Println("Thursday...") case "FRI": fmt.Println("Friday...") case "SAT": fmt.Println("Saterday...") case "SUN": fmt.Println("Sunday...") default: fmt.Println("Default branche...") } //pattarn 2 switch weekday := "SUN"; weekday { case "MON": fmt.Println("Monday...") case "TUE": fmt.Println("Tuesday...") case "WED": fmt.Println("Wednesday...") case "THU": fmt.Println("Thursday...") case "FRI": fmt.Println("Friday...") case "SAT": fmt.Println("Saterday...") case "SUN": fmt.Println("Sunday...") default: fmt.Println("Default branche...") } //pattarn 3 score := 75 switch { case score < 60: fmt.Println("Grade D...") case score <= 70: fmt.Println("Grade C...") case score <= 80: fmt.Println("Grade B...") case score <= 90: fmt.Println("Grade B...") default: fmt.Println("Default branche...") } //pattarn 4 var obj interface{} obj = "Hello World" switch obj.(type) { case int: fmt.Println("This is a int type ...") case string: fmt.Println("This is a string type...") default: fmt.Println("Default branch...") }}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-switch.goFriday...Sunday...Grade B...This is a string type...[root@liumiaocn goprj]#
for语句
例子代码
[root@liumiaocn goprj]# cat basic-for.gopackage mainfunc main() { //pattarn 1 for level := 0; level < 10; level++ { for cnt := 0; cnt < 10-level; cnt++ { print(" ") } for ascnt := 0; ascnt < level; ascnt++ { print("*") } println("") } //pattarn 2 level := 0 for level < 10 { for cnt := 0; cnt < 10-level; cnt++ { print(" ") } for ascnt := 0; ascnt < 2*level-1; ascnt++ { print("*") } println("") level++ } //pattarn 3 /* for { println("please don try this one unless you want to test your cpu usage") } */}[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-for.go * ** *** **** ***** ****** ******* ******** ********* * *** ***** ******* ********* *********** ************* *************** *****************[root@liumiaocn goprj]#
0 0
- go语言快速入门:流程控制(7)
- Go语言快速入门
- go语言入门(流程控制,函数,错误处理)
- GO语言学习-流程控制
- go语言学习-流程控制
- Go语言 beego快速入门
- Go语言 beego快速入门
- go语言(三)流程控制,函数
- Go语言学习(五)流程控制语句
- 学习Go语言,关于流程控制
- Go语言学习(4)-流程控制
- go语言学习笔记(8) 流程控制
- Go起步:7、流程控制
- Go语言学习之流程控制(The way to go)
- Java程序员快速入门Go语言
- go语言快速入门:简介(1)
- go语言快速入门:词法基础(3)
- go语言快速入门:template模板(12)
- Leetcode 108. Convert Sorted Array to Binary Search Tree
- Java笔记->ExecutorService 的理解与使用
- 1038. 统计同成绩学生(20)
- 【cf 487C】【数论+构造】【根据前缀积取模构造序列】
- 1039. 到底买不买(20)
- go语言快速入门:流程控制(7)
- iOS中解决后台返回的null导致的崩溃问题
- 1040. 有几个PAT(25)
- 高并发简单解决方案-redis缓存队列+mysql 批量入库+php离线整合
- 【CodeForces】343D Water Tree
- 【BZOJ 1180】[CROATIAN2009]OTOCI LCT
- 10.2 信号处理
- VTK修炼之道48:图形基本操作进阶_符号化操作与模型区率计算
- Redis使用详细教程