golang流程控制if,switch分支

if 分支

if 单分支

if 条件表达式 {
逻辑代码
}

package main

import "fmt"

func main() {
	//var a int = 9
	//if a < 10 { //判断a《10位true,所以为执行下面的打印a的值。
	if a := 9; a < 10 { //定义a的值为9,判断a《10位true
		fmt.Printf("a的值为: %v\n", a)
	}
}

执行结果

a的值为: 9

if 双分支

if 条件表达式 {
逻辑代码1
} else {
逻辑代码2
}

当条件表达式成立时执行逻辑代码1,当条件表达式不成立执行逻辑代码2

package main

import "fmt"

func main() {
	if n1 := 20; n1 > 30 { //判断n1的值是否大于30,结果为false
		fmt.Printf("a的值大于30,a的值为%v\n", n1)
	} else { //注意else必须写}一行,不能写在下面
		fmt.Printf("a的值小于30,a的值为%v\n", n1)
	}
}

执行结果

a的值小于30,a的值为20

if 多分支

if 条件表达式1 {
逻辑代码1
} else if 条件表达式2 {
逻辑代码2
}
.......
else {
逻辑代码n
}
if条件表达式成立就执行哪个逻辑代码,都不成立就执行else下面的代码

package main

import "fmt"

// 多分支
func main() {
	if n3 := 81; n3 >= 100 { //n3的值大于等于100,执行打印
		fmt.Printf("n3的值大于100,n3的值为:%v\n", n3)
	} else if n3 >= 90 { //n3的值大于等于90,执行打印
		fmt.Printf("n3的值大于90,n3的值为:%v\n", n3)
	} else if n3 >= 80 { //n3的值大于等于80,执行打印
		fmt.Printf("n3的值大于80,n3的值为:%v\n", n3)
	} else { //上面的条件都不符合,则执行这个打印
		fmt.Printf("n3的值小于80,n3的值为:%v\n", n3)
	}
}

执行结果

n3的值大于80,n3的值为:81

switch 分支

switch 表达式 {
case 值1,值2,.….:
语句块1
case 值3,值4,...:
语句块2
....
default:
语句块
}

  • case 后面的值不能重复,且必须与switch后面表达式的值类型一致。
  • case后面不需要带break。
  • default作为兜底,不是必须的。当上面的case值都不匹配,则执行default下面的语句块,default写在什么位置都可以,不一定需要写在最下面。
  • 利用fallthrough关键字可以穿透case下面的判断,执行下面的语句
  • case后面可以带多个值,使用逗号间隔。比如 case 值1,值2…
package main

import "fmt"

func main() {
	var n1 int = 120
	switch n1 {
	case 90, 100: //当n1等于90或者100执行下面的打印
		fmt.Printf("n1的值为90或100\n")
	case 110: //当n1等于110执行下面的打印
		fmt.Printf("n1的值为110\n")
	case 120: //当n1等于120执行下面的打印
		fmt.Printf("n1的值为120\n")
		fallthrough //继续执行下一个case,也叫switch穿透。
	case 130:
		fmt.Printf("n1的值为130\n")
	default: //上面的case都不匹配,则执行这段打印
		fmt.Printf("n3的值不在90,100,110,120,130之中\n")
	}
}

执行结果

n1的值为120
n1的值为130
posted @ 2023-02-18 12:42  XIN-0808  阅读(31)  评论(0编辑  收藏  举报