golang学习之go流程控制

一、if 语句

if语句用于处理当满足不同的条件时执行不同的逻辑的需求
当程序if语句格式为 if 表达式 {} else if 表达式 {} else {} ,表达式值是bool类型的

package main

func main() {

	i := 8
	if i == 8 {
		println("i的值等于8")
	} else if i==7 {
		println("i的值等于7")
	} else if i==6 {
		println("i的值等于6")
	} else {
		println("i的值不等于6不等于7也不等于8")
	}

}

if的bool表达式前还可以有其他表达式需要用分号(;)分隔

package main

func main() {

	if j, i := 7, 8; i == 9 {
		println("i的值等于8")
	} else if j == 7 {
		println("j的值等于7")
	} else if i == 6 {
		println("i的值等于6")
	} else {
		println("i的值不等于6不等于8j也不等于7")
	}

}

二、switch语句

1、switch语句和if类似也是用于根据不同条件执行不同业务逻辑:

package main

func main() {
	i := 7
	switch i {
	case 8:
		println("i的值等于8")
	case 7:
		println("i的值等于7")
	default:
		println("i的值不等于7也不等于8")
	}
}

2、case 可以是常量值、表达式。switch中也可以包含表达式,需要分号(;)分割:

package main

func main() {

	switch i, j, k := 7, 3, 4; i + 1 {
	case 8:
		println("i + 1的值等于8")
	case j + k:
		println("j + k的值等于7")
	default:
		println("任何条件都不满足")
	}
}

3、fallthrough 放在case 逻辑块的末端可使程序放弃判断下一个 case 表达式是否满足条件:

package main

func main() {

	switch i, j, k := 7, 3, 4; i + 1 {
	case 8:
		println("i + 1的值等于8")
		fallthrough //继续执行 case j+ k 不管是否满足条件
	case j + k:
		println("j + k的值等于7")
	case 100:
		println("100")
	default:
		println("任何条件都不满足")
	}
}

4、break可以跳出switch逻辑块的执行:

package main

func main() {

	switch i, j, k := 7, 3, 4; i + 1 {
	case 8:
		println("i + 1的值等于8")
		fallthrough //继续执行 case j+ k 不管是否满足条件
	case j + k:
		if j+k == 7 {
			break // 跳出switch
		}
		println("j + k的值等于7")
	case 100:
		println("100")
	default:
		println("i的值不等于7也不等于8")
	}
}

三、for循环语句

for语句格式1:
for 初始化表达式,条件表达式,迭代表达式 {
}
初始化表达式,只执行一次
条件表达式,满足条件继续执行循环体即{}内的内容,不满足则结束for语句
迭代表达式与条件表达式轮番执行直至条件表达式不满足即表达式结果为false

package main

func main() {
	nums := []int{1, 2, 3, 4}
	// i:=0 初始化表达式,只执行一次
	// i < len(nums) 条件表达式,满足条件继续执行循环体println(nums[i]),不满足则结束for语句
	// i++ 迭代表达式与条件表达式轮番执行直至条件表达式不满足即表达式结果为false
	for i := 0; i < len(nums); i++ {
		println(nums[i])
	}
}

for语句格式2:
for 条件表达式 {
}
条件表达式,满足条件继续执行循环体即{}内的内容,不满足则结束for语句

package main

func main() {
	i, nums := 0, []int{1, 2, 3, 4}
	for i < len(nums) {
		println(nums[i])
		i++
	}
}

for语句格式3:
for {
}
类似其他语句的 while true

package main

func main() {
	i, nums := 0, []int{1, 2, 3, 4}
	for {
		println(nums[i])
		if i >= 3 {
			break //跳出for循环
		}
		i++
	}
}

for 语句4:
for …range 用于遍历 string array slice map channel

package main

func main() {
	nums := []int{1, 2, 3, 4}
	for i, v := range nums {
		println(i, v)
	}
}

for 循环与 continue、break
continue用于跳过本次执行
break用于跳出for循环

package main

func main() {
	nums := []int{1, 2, 3, 4, 5, 6, 7}
	for i := 0; i < len(nums); i++ {
		if i == 1 {
			continue
		}
		if i == 3 {
			break
		}
		println(nums[i])
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值