Golang - 5 Golang的流程控制:if/else、for、switch
5 流程控制
目录
1 if/else
1.1 语法
// 基本形式 if 条件1 { }else 条件2 { }else { }
- 多个分支
age := 99 if age>=80 { fmt.Println("耄耋老人") }else if age>=70 && age<80 { fmt.Println("古稀老人") }else { fmt.Println("花甲或者其他") }
2 for
在golang中,只提供了for来进行循环,没有while等,但是可以通过别的写法来实现while的功能
2.1 语法
for 初始表达式;条件表达式;迭代表达式 { // do something } // 例如: for i:=0;i<5;i++{ fmt.Println(i) }
2.2 简单写法与实现while的功能
(1)省略掉第一部分【分号不能省】
i:=0 for ;i<5;i++{ fmt.Println(i) }
(2)省略掉第三部分【分号不能省】
for i:=0;i<5;{ fmt.Println(i) i++ }
(3)实现while功能:省略第一部分和第三部分
i:=0 for i<5{ fmt.Println(i) i++ }
(4)死循环
i:=0 for true { fmt.Println(i) i++ }
瞬间打了124万条数据
2.3 基于迭代的循环、基于索引的循环
- 基于索引的循环
for i,j :=1,10;i<=10; i,j= i+1,j-1{ fmt.Println("i",i) fmt.Println("j",j) }
-
基于迭代的循环
这样循环取到的是字符,而如果基于索引循环,取得的是字节
s:="xfq小番茄" for i,v:=range s{ fmt.Println(i) fmt.Println(string(v)) }
3 switch
switch
是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块,优雅的替换
掉else-if
3.1 switch的基本使用
switch
后面的表达式不需要括号case
语句块执行完会自动退出整个switch
语句块,也就是不需要使用break
显式声明case
语句快执行完后,如果希望继续向下执行,可以使用关键字fallthrough
, 这样就和其他编程语言不加break
效果一样了
switch expr { case v1: ... case v2: ... case v3, v4, v5: // 可以同时测试多个可能符合条件的值 ... default: ... }
3.2 各种形式
① 普通表达式
score:=90 switch score { case 90: fmt.Println("90") case 80: fmt.Println("80") default: fmt.Println("默认值") }
② 省略expr表达式
score:=90 switch { case score>200: fmt.Println("比200大") case score==200: fmt.Println("等于200") case score<200: fmt.Println("比200小") default: fmt.Println("默认值") } // 比200小
③ fallthrough
fallthrough表示当符合当前条件后,会无条件执行下一条语句
score:=200 switch { case score>200: fmt.Println("比200大") case score==200: fmt.Println("等于200") fallthrough case score<200: fmt.Println("比200小") fallthrough default: fmt.Println("默认值") } ==== 等于200 比200小 默认值
标签:
Golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY