Golang学习之流程控制
流程控制
Go语言中常用的流程控制有if
和for
,而switch
和goto
是为了简化代码,降低重复代码而扩展的流程控制。
if……else
func main() {
var num = 10
if num == 10 {
fmt.Println("hello == 10")
} else if num > 10 {
fmt.Println("hello > 10")
} else {
fmt.Println("hello < 10")
}
}
注意这种写法,num2是局部变量
if num2:= 10; num2>=10 {
fmt.Println("hello >=10")
}
for循环结构
基本格式
for 初始语句; 条件表达式; 结束语句 {
循环体
}
在Go语言中,没有while语句,可以通过for来代替
for {
循环体
}
for循环可以通过break
、goto
、return
、panic
等语句退出循环
for …… range 键值循环
for range
循环结构用于遍历数组,切片,字符串,Map及通道,其中
- 数组、切片、字符串返回索引和值
- map返回键和值
- 通道channel只返回通道内的值
遍历字符串
var str = "你好golang"
for key, value := range str {
fmt.Printf("%v - %c ", key, value)
//0 - 你 3 - 好 6 - g 7 - o 8 - l 9 - a 10 - n 11 - g
}
遍历切片(数组)
var array = []string{"php", "java", "node", "golang"}
for index, value := range array {
fmt.Printf("%v %s ", index, value)
}
//0 php 1 java 2 node 3 golang
switch case 结构
用switch语句可方便的对大量的值进行条件判断
eg := ".a"
switch eg {
case ".h": {
fmt.Println(".h")
break
}
case ".d": {
fmt.Println(".d")
break
}
case ".j": {
fmt.Println(".j")
}
default: {
fmt.Println("其它后缀")
}
}
// 其他后缀
switch的另外一种写法
switch eg := ".a"; eg {
case ".h": {
fmt.Println(".h")
break
}
case ".d": {
fmt.Println(".d")
break
}
case ".j": {
fmt.Println(".j")
}
default: {
fmt.Println("其它后缀")
}
}
同时一个分支可以有多个值
eg := ".t"
switch eg {
case ".h": {
fmt.Println(".h")
break
}
case ".t",".d": {
fmt.Println("传递文档")
break
}
case ".j": {
fmt.Println(".j")
}
default: {
fmt.Println("其它后缀")
}
}
在golang中,break可以不写,也能够跳出case,而不会执行其它的
break:跳出循环
- 用于循环语句中跳出循环,并开始执行循环之后的语句
- break在switch(开关语句)中在执行一条case后跳出语句的作用
- 在多重循环中,可以用标号label标出想break的循环
goto:跳转到指定标签
goto 语句通过标签进行代码间的无条件跳转
var n = 20
if n > 24 {
fmt.Println("成年人")
} else {
goto lable3
}
fmt.Println("aaa")
fmt.Println("bbb")
lable3:
fmt.Println("ccc")
fmt.Println("ddd")
// ccc ddd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人