Go语言基础学习笔记:循环和switch语句 | 青训营
循环语句
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语句可以大大提高代码的灵活性和可读性。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbbaij
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01