go学习笔记-流程控制(if/else,for/range)
流程控制(if/else,for/range)
if
if条件判断语句的语法概括起来就是:如果满足条件就做某事,否则做另一件事。
func testIf() {
num := 10
if num < 10 {
fmt.Println(`less than 10`)
} else if num == 10 {
fmt.Println(`equal 10`)
} else {
fmt.Println(`more than 10`)
}
}
switch
switch语句用来解决很多if else的问题,语法如下
switch sExpr {
case expr1:
some instructions
case expr2:
some other instructions
case expr3:
some other instructions
default:
other code
}
sExpr和expr1、expr2、expr3的类型必须一致。sExpr表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项;而如果switch没有表达式,它会匹配true。witch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case。
func testSwitch() {
i := 12
switch {
case i < 12:
fmt.Println("< 12")
case i == 12:
fmt.Println("= 12")
default:
fmt.Println("> 12")
}
}
for
循环操作,既可以用来循环读取数据,又可以当作while来控制逻辑,还能迭代操作。它的语法如下:
for expression1; expression2; expression3 {
//...
}
expression1在循环开始之前调用,
expression2是用来条件判断,
expression3在每轮循环结束之时调用。
示例:
func testFor() {
sum := 0
for num := 1; num < 10; num++ {
sum += num
}
fmt.Println(sum)
}
循环控制语句
循环控制语句可以控制循环体内语句的执行过程。
- break 语句 经常用于中断当前 for 循环或跳出 switch 语句
- continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
for i := 1; i < 10; i++ {
if i == 5 {
continue
}
if i == 8 {
break
}
fmt.Println(i)
}
range 关键字
range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值
arrs := [5]int{1, 2, 3, 4, 5}
for index, item := range arrs {
fmt.Println(index, item)
}
slices := []string{"a", "b", "c"}
for index, item := range slices {
fmt.Println(index, item)
}
maps := map[string]int{"a": 1, "b": 2, "c": 3}
for key, val := range maps {
fmt.Println(key, val)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构