当前位置: 首页 > news >正文

【Golang】:流程控制语句

目录

1. 分支控制

1.1 if 语句

1.2 switch 语句

2. 循环控制

3. 跳转控制

3.1 break 语句

3.2 continue 语句

3.3 goto

3.4 return语句

3.5 带标签的 break / continue


1. 分支控制

1.1 if 语句

if 条件 { // 条件成立时执行 
} else if 其他条件 { // 另一个条件成立时执行 
} else { // 都不成立时执行 
}// 支持变量初始化:
if score := 80; score >= 60 { fmt.Println("及格") 
}

1.2 switch 语句

switch 表达式 { 
case 值1: // ... 
case 值2, 值3: // 多个匹配值 // ... 
default: // 都不匹配时执行 
}

特点:

  • Go 的 switch 不需要写 break,匹配成功会自动跳出。

  • 想继续执行下一个 case,可以用 fallthrough

    // 一// 二switch num := 1; num {case 1:fmt.Println("一")fallthroughcase 2:fmt.Println("二")}

2. 循环控制

Go 只有 for 一种循环语句。

// 1. 标准 for 循环
for i := 0; i < 5; i++ {fmt.Println(i) 
}// 2. while 风格
i := 0 
for i < 5 { fmt.Println(i) i++ 
}// 3. 无限循环
for { fmt.Println("一直执行") 
}

for range

用于遍历数组、切片、map、字符串:

// 在for range循环中遍历字符串时,每次迭代会返回两个值
// 第一个是字符的索引
// 第二个是字符的值,当遍历结束后会自动退出for循环。
nums := []int{1, 2, 3} 
for i, v := range nums { fmt.Println(i, v) 
}

3. 跳转控制

3.1 break 语句

退出当前循环或 switch

for i := 0; i < 5; i++ { if i == 3 { break } fmt.Println(i) 
}

3.2 continue 语句

跳过本次循环,进入下一次循环。

for i := 0; i < 5; i++ { if i%2 == 0 { continue } fmt.Println(i) 
}

3.3 goto

直接跳到某个标签执行(不建议频繁使用)。

    fmt.Println("开始") goto End fmt.Println("这里不会执行") 
End: fmt.Println("结束")

3.4 return语句

Go中的return语句在方法或函数中使用,表示跳出所在的方法或函数。如下:

// 在普通函数中使用return语句,表示跳出当前函数,可以理解成终止函数。
// 在main函数中使用return语句,表示终止main函数,即终止整个程序。
func main() {// return语句for i := 0; i < 10; i++ {if i == 6 {return}fmt.Printf("%d ", i)}
}

3.5 带标签的 break / continue

当有多层循环时,可以退出到指定标签。

    // 0 0Outer:for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if j == 1 {break Outer // 直接跳出 Outer 循环}fmt.Println(i, j)}}/*0 01 02 0*/Outer:for i := 0; i < 3; i++ {for j := 0; j < 3; j++ {if j == 1 {continue Outer // 直接跳出 Outer 循环}fmt.Println(i, j)}}

http://www.xdnf.cn/news/1302805.html

相关文章:

  • 【Vibe Coding 工程之 StockAnalyzerPro 记录】- EP1.先写 PRD
  • 【秋招笔试】2025.08.15饿了么秋招机考-第一题
  • P4069 [SDOI2016] 游戏 Solution
  • 微信小程序 拖拽签章
  • Git版本控制器
  • spring中异步任务注解@Async和@scheduled的使用
  • 2025年机械制造、机器人与计算机工程国际会议(MMRCE 2025)
  • Docker Compose 入门教程
  • MySQL、PolarDB、PolarDB-X、TableStore、MongoDB、TiDB、ClickHouse选型
  • docker入门
  • Java 调用 Python 脚本:实现 HelloWorld
  • 计算机视觉(opencv)实战五——图像平滑处理(均值滤波、方框滤波、高斯滤波、中值滤波)附加:视频逐帧平滑处理
  • 从根本上解决MAC权限问题(关闭sip)
  • SSL和TLS协议的消息认证码(MAC)
  • Android RxJava变换操作符详解
  • 使用SQLALCHEMY的outerjoin时的bug
  • 训练大模型的前提:数据治理工程:从原始数据到高质量语料的系统化治理实践
  • vector接口模拟实现及其原理
  • Redis 官方提供免费的 30 MB 云数据库
  • 阿里云出里两款新的云服务器
  • Uniapp之微信小程序自定义底部导航栏形态
  • 订单簿数据智能解析深度学习算法筛选大单并预测即时价格变动
  • MuMu模拟器Pro Mac 安卓手机平板模拟器(Mac中文)
  • 智能家居【home assistant】(二)-集成xiaomi_home
  • 云原生俱乐部-k8s知识点归纳(3)
  • 【计算机视觉与深度学习实战】02基于形态学的权重自适应图像去噪系统
  • 自学大语言模型之Transformer的Tokenizer
  • Android 欧盟网络安全EN18031 要求对应的基本表格填写
  • 对抗损失(GAN)【生成器+判断器】
  • HarmonyOS 实战:用 List 与 AlphabetIndexer 打造高效城市选择功能