循环语句
Go语言中只有 for 循环。
Go中的 for 循环可以实现其它语言(如C语言)中的 for、while循环和遍历迭代。
- for 循环
for 循环是一个循环控制结构,可以执行指定次数的循环。
(1) 语法 Go 语言的 For 循环大概有以下种形式,只有其中的一种使用分号。
和 C 语言的 for 一样:
for init;
condition;
post { }
和 C 的 while 一样:
for condition { }
和 C 的 for( ; ; ) 一样:
//无限循环 相当于 for true {}
for { }
init: 一般为赋值表达式,给控制变量赋初值;
condition: 关系表达式或逻辑表达式,循环控制条件;
post: 一般为赋值表达式,给控制变量增量或减量。
(2)for语句执行过程
- 先对表达式 init 赋初值;
- 判别赋值表达式 init 是否满足给定条件 condition,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,判别 condition;若 condition 的值为假,不满足条件,就终止for循环。
2.循环控制 循环控制语句可以控制循环体内语句的执行过程。
GO 语言支持以下几种循环控制语句:
| 控制语句 | 描述 |
|---|---|
| break语句 | 用于中断当前for循环或跳出switch语句 |
| continue语句 | 跳过当前循环的剩余语句,然后继续进行下一轮循环 |
| goto语句 | 将控制转移到被标记的语句 |
这三个语句都可以配合标签(label)使用
标签名区分大小写,定义以后若不使用会造成编译错误
continue、break配合标签(label)可用于多层循环跳出
goto是调整执行位置,与continue、break配合标签(label)的结果并不相同
Switch语句
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。 Golang switch 分支表达式可以是任意类型,不限于常量。可省略 break,默认自动终止。
1.语法
Go 编程语言中 switch 语句的语法如下:
switch var1 {
case val1:
...
case val2:
...
default:
...
}
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。 可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。
例子
package main
import (
"fmt"
)
func f() {
score := 90
switch {
case score >= 80:
fmt.Println("考得不错")
case score < 80 && score >= 60:
fmt.Println("好好学习吧!")
default:
fmt.Println("玩命学习!")
}
}
func main() {
f()
}
运行结果
考得不错
2.注意事项
- 支持多条件匹配
- 不同的 case 之间不使用 break 分隔,默认只会执行一个 case。
- 如果想要执行多个 case,需要使用 fallthrough 关键字,也可用 break 终止。
- 分支还可以使用表达式,例如:a>10
个人感受
- Go语言提供了for循环语句来实现循环操作,且for循环中的条件表达式可以省略括号,而循环体也不需要使用花括号包裹,这使得代码更加简洁,易读性更高,让我更好的理解。
- 与其他语言相比,Go语言的switch语句没有fallthrough的隐式行为,默认情况下只会执行匹配成功的case语句,这样可以避免一些常见的错误。同时,Go语言的switch语句还可以用于对类型进行判断,使代码具备更强的灵活性。
- 在学习和使用Go语言的过程中,我觉得合理运用循环和switch语句可以大大提高代码的灵活性和可读性。