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++
}

image-20230426171955493

瞬间打了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
默认值
posted @   Duosg  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示