switch语句
语法
switch expression {
case condition1:
fmt.Printf("%v", condition1)
case condition2:
fmt.Printf("%v", condition1)
default:
fmt.Printf("default")
}
eg
将英文的ABC等级转换为优秀、良好、差
package main
import "fmt"
func f(score string){
switch score {
case "A":
fmt.Printf("优秀\n")
case "B":
fmt.Printf("良好\n")
default:
fmt.Printf("不及格\n")
}
}
func main() {
f("B")
f("A")
f("C")
}
运行结果
良好
优秀
不及格
多条件匹配
多条件匹配采用逗号分隔,其中一个匹配到即可
package main
import "fmt"
func f(score string){
switch score {
case "A","AA","AAA":
fmt.Printf("优秀\n")
case "B":
fmt.Printf("良好\n")
default:
fmt.Printf("不及格\n")
}
}
func main() {
f("B")
f("AA")
f("C")
}
运行结果
良好
优秀
不及格
case可以使用条件表达式
package main
import "fmt"
func f(score int){
switch {
case score == 100:
fmt.Printf("满分\n")
case 100 > score && score > 80:
fmt.Printf("优秀\n")
case 80 >=score && score > 60:
fmt.Printf("良好\n")
default:
fmt.Printf("不及格\n")
}
}
func main() {
f(100)
f(85)
f(60)
f(59)
}
运行结果
满分
优秀
不及格
不及格
fallthrough
go语言中的switch没有break,fallthrough与之相反。
package main
import "fmt"
func f(score int){
switch score {
case 100:
fmt.Printf("100\n")
fallthrough
case 200:
fmt.Printf("200\n")
case 300:
fmt.Printf("300\n")
default:
fmt.Printf("其他\n")
}
}
func main() {
f(100)
}
运行结果
100
200
for循环
go语言只有for循环没有while和do while循环
语法
for 初始语句;条件表达式;结束语句{
循环体语句
}
eg
循环输出1到100
package main
import "fmt"
func f(){
for i := 1; i <= 5; i++ {
fmt.Printf("%v\n", i)
}
}
func main() {
f()
}
运行结果
1
2
3
4
5
初始条件写在for循环外
package main
import "fmt"
func f(){
i := 1
for ; i <= 5; i++ {
fmt.Printf("%v\n", i)
}
}
func main() {
f()
}
运行结果
1
2
3
4
5
初始条件和结束语句卸载for外
package main
import "fmt"
func f(){
i := 1
for i <= 5 {
fmt.Printf("%v\n", i)
i++
}
}
func main() {
f()
}
运行结果
1
2
3
4
5
死循环
package main
import "fmt"
func f(){
for {
fmt.Printf("我停不下来了 \n")
}
}
func main() {
f()
}
运行结果
我停不下来了
我停不下来了
我停不下来了
我停不下来了
我停不下来了
我停不下来了
我停不下来了
....
评论区