侧边栏壁纸
博主头像
丛庆

没事儿写代码,有事写代码。email:1024@cong.zone

  • 累计撰写 116 篇文章
  • 累计创建 97 个标签
  • 累计收到 4 条评论

【golang】基础三 流程控制

丛庆
2022-11-28 / 0 评论 / 0 点赞 / 350 阅读 / 628 字 / 正在检测是否收录...
温馨提示:
部分资料和图片来源于网络,如有危害到您的利益请与我联系删除,1024@cong.zone。

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()
}

运行结果

我停不下来了 
我停不下来了 
我停不下来了 
我停不下来了 
我停不下来了 
我停不下来了 
我停不下来了 
....
0

评论区