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小
默认值
标签:case,200,fmt,else,Golang,switch,score,Println
From: https://www.cnblogs.com/DuoDuosg/p/17357046.html