当前位置:网站首页>Go-11-流程控制
Go-11-流程控制
2022-08-09 01:26:00 【hahyyy】
条件判断
Go语言提供了以下几种条件判断语句
语句 | 描述 |
if 语句 | 由一个布尔表达式后紧跟一个或多个语句组成 |
if...else语句 | if语句后可以使用可选的else语句 else语句中的表达式在布尔表达式为false时执行 |
if 嵌套语句 | 可以在if或else if语句中嵌入一个或多个if或else if语句 |
switch 语句 | 用于基于不同条件执行不同动作 |
select 语句 | 类似于switch语句,但是select会随机执行一个可运行的case 如果没有case可运行,它将阻塞,直到有case可运行 |
if else
package main
import "fmt"
func main() {
age := 1
// if语句后面的{不能换行
if age <= 18 {
fmt.Println("kid")
}else{
fmt.Println("adult")
}
}
switch
// 使用 type 关键字定义了一个新的类型 Gender
type Gender int8
// 常量 => 标识符全部大写
const (
MALE Gender = 1
FEMALE Gender = 2
)
gender := MALE
// 将下面的case语句值 -> 匹配gender
switch gender {
case FEMALE:
fmt.Println("female")
case MALE:
fmt.Println("male")
default:
fmt.Println("unknow")
}
循环
Go语言提供了以下几种类型循环处理语句
循环类型 | 描述 |
for 循环 | 重复执行语句块 |
循环嵌套 | 在for循环中嵌套一个或多个for循环 |
Go语言支持以下几种循环控制语句
控制语句 | 描述 |
break 语句 | 经常用于中断当前for循环或跳出switch语句 |
continue 语句 | 跳过当前循环的剩余语句,然后继续进行下一轮循环 |
goto 语句 | 将控制转移到被标记的语句 |
无限循环
如果循环中条件语句永远不为false则会进行无限循环,我们可以通过for循环语句中只设置一个条件表达式来执行无限循环
for true{
// 没有true也是可以的
// for {
fmt.Println("这是一个无限循环")
}
for累加
sum := 0
// 这里的i是临时变量,用完就回收了
for i := 0; i < 10; i++ {
if sum > 50 {
break
}
sum += i
}
// break和continue的用法与其他语言没有区别
fmt.Println(sum)
遍历
对数组、切片、字典使用for range遍历
nums := []int{10, 20, 30, 40}
for i, num := range nums {
fmt.Println(i, num)
}
// 0 10
// 1 20
// 2 30
// 3 40
m2 := map[string]string{
"Sam": "Male",
"Alice": "Female",
}
for key, value := range m2 {
fmt.Println(key, value)
}
// Sam Male
// Alice Female
边栏推荐
- OIDC 思维导图
- Sencha Touch页面跳转创建返回上一级按钮的设计思路
- CondConv--动态卷积思想
- 【.NET 6】开发minimal api以及依赖注入的实现和代码演示
- Loadrunner结合Fiddler实现脚本的录制
- “圆梦杯”大学生智能硬件设计大赛 初赛样题——理论题作答
- 猿辅导联合多方专家共议新课标:语文将更强调“实践性”
- 多语种翻译-免费多语种翻译软件
- Using MySQL in Ubuntu/Linux environment: Solve the problem of com.mysql.jdbc.PacketTooBigException: Packet for query is too large
- 基于机器学习之模型树短期负荷预测(Matlab代码实现)
猜你喜欢
随机推荐
轻量化网络ChannelNet--channel-wize Conv在channel维度卷积
Pinctrl 子系统简介
A double non-programmer interviewed Ant, Meituan, Ctrip and other big companies with offers to share the interview process
轻量化神经网络--MobileNet v3学习记录
class path resource [bean.xml] cannot be opened because it does not 错误解决方案
远程控制项目遇到的bug
“圆梦杯”大学生智能硬件设计大赛 初赛样题——理论题作答
leetcode-45-跳跃游戏 II
5-1 Seaborn 关系绘图
PostMan导入证书 添加证书
全文翻译:EDPB关于VVA(虚拟语音助理)中处理个人数据的指南02/2021
软件测试技术之如何编写测试用例(5)
ffplay播放控制
MySQL存储过程与函数
椭圆曲线复习
使用百度EasyDL实现智能垃圾箱
《LC刷题总结》—— 二叉树
4-6 Matplotlib库 饼图
Introduction to LVGL (based on v8.1-8.2)
torch.utils.data.DataLoader