尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

详细介绍:go语言学习 第4章:流程控制

详细介绍:go语言学习 第4章:流程控制
📅 发布时间:2026/6/19 20:03:56

第4章:流程控制

在编程中,流程控制语句是控制程序执行顺序的关键工具。它们允许我们根据不同的条件执行不同的代码块,从而实现复杂的逻辑。Go语言提供了多种流程控制语句,包括条件语句(if、switch)和循环语句(for、range)。本章将详细介绍这些流程控制语句的使用方法和注意事项。

一、条件语句

(一)if语句

if语句是最基本的条件语句,用于根据条件表达式的值决定是否执行某个代码块。在Go语言中,if语句的语法如下:

if 条件表达式 {
// 逻辑代码
}
1. 单分支if

单分支if语句只有在条件表达式为true时才会执行代码块。例如:

package main
import "fmt"
func main(
) {
var count int = 20
if count <
30 {
fmt.Println("库存不足"
)
}
}

在这个例子中,如果count小于30,程序会输出“库存不足”。

2. 双分支if

双分支if语句在条件表达式为true时执行一个代码块,否则执行另一个代码块。语法如下:

if 条件表达式 {
// 逻辑代码1
}
else {
// 逻辑代码2
}

例如:

package main
import "fmt"
func main(
) {
var count int = 70
if count <
30 {
fmt.Println("库存不足"
)
}
else {
fmt.Println("库存充足"
)
}
}

在这个例子中,如果count小于30,程序会输出“库存不足”,否则输出“库存充足”。

3. 多分支if

多分支if语句通过多个else if子句来处理多个条件。语法如下:

if 条件表达式1 {
// 逻辑代码1
}
else
if 条件表达式2 {
// 逻辑代码2
}
else {
// 逻辑代码n
}

例如:

package main
import "fmt"
func main(
) {
var score int = 85
if score >= 90 {
fmt.Println("您的成绩为A级别"
)
}
else
if score >= 80 {
fmt.Println("您的成绩为B级别"
)
}
else
if score >= 70 {
fmt.Println("您的成绩为C级别"
)
}
else
if score >= 60 {
fmt.Println("您的成绩为D级别"
)
}
else {
fmt.Println("您的成绩为E级别"
)
}
}

在这个例子中,程序会根据score的值输出相应的成绩级别。

(二)switch语句

switch语句用于根据不同的值选择执行不同的代码块。它比多个if语句更简洁,也更容易阅读。switch语句的语法如下:

switch 表达式 {
case 值1:
// 语句块1
case 值2:
// 语句块2
...
default:
// 默认语句块
}
1. 基本用法

例如:

package main
import "fmt"
func main(
) {
var score int = 85
switch score / 10 {
case 10:
fmt.Println("您的等级为A级"
)
case 9:
fmt.Println("您的等级为A级"
)
case 8:
fmt.Println("您的等级为B级"
)
case 7:
fmt.Println("您的等级为C级"
)
case 6:
fmt.Println("您的等级为D级"
)
default:
fmt.Println("您的等级为E级"
)
}
}

在这个例子中,程序会根据score的值输出相应的成绩级别。

2. 特殊用法
  • 省略表达式:switch语句可以不带表达式,直接作为if语句的替代品。
package main
import "fmt"
func main(
) {
var score int = 85
switch {
case score >= 90:
fmt.Println("您的成绩为A级别"
)
case score >= 80:
fmt.Println("您的成绩为B级别"
)
case score >= 70:
fmt.Println("您的成绩为C级别"
)
case score >= 60:
fmt.Println("您的成绩为D级别"
)
default:
fmt.Println("您的成绩为E级别"
)
}
}
  • fallthrough关键字:fallthrough关键字可以用来实现switch语句的穿透,即执行完当前case后继续执行下一个case。
package main
import "fmt"
func main(
) {
var score int = 85
switch score / 10 {
case 10:
fmt.Println("您的等级为A级"
)
fallthrough
case 9:
fmt.Println("您的等级为A级"
)
fallthrough
case 8:
fmt.Println("您的等级为B级"
)
}
}

二、循环语句

(一)for循环

for循环是Go语言中最基本的循环语句,用于重复执行某个代码块。for循环的语法如下:

for 初始表达式; 布尔表达式; 迭代因子 {
// 循环体
}
1. 基本用法

例如:

package main
import "fmt"
func main(
) {
sum := 0
for i := 1
; i <= 5
; i++ {
sum += i
}
fmt.Println("1到5的和为:"
, sum)
}

在这个例子中,程序会计算1到5的和,并输出结果。

2. 无限循环

如果省略for循环的条件表达式,可以创建一个无限循环。例如:

package main
import "fmt"
func main(
) {
for {
fmt.Println("这是一个无限循环"
)
break // 使用break语句退出循环
}
}
3. 灵活的for循环

for循环的初始表达式和迭代因子可以省略,使其更加灵活。例如:

package main
import "fmt"
func main(
) {
i := 1
for i <= 5 {
fmt.Println(i)
i++
}
}

(二)for-range循环

for-range循环是Go语言中用于遍历集合(如数组、切片、字符串、映射等)的专用循环语句。语法如下:

for key, value :=
range collection {
// 循环体
}
1. 遍历数组和切片

例如:

package main
import "fmt"
func main(
) {
arr := [5]int{
1
, 2
, 3
, 4
, 5
}
for index, value :=
range arr {
fmt.Printf("索引:%d, 值:%d\n"
, index, value)
}
}
2. 遍历字符串

例如:

package main
import "fmt"
func main(
) {
str := "hello, Golang!"
for index, runeValue :=
range str {
fmt.Printf("索引:%d, 字符:%c\n"
, index, runeValue)
}
}
3. 遍历映射

例如:

package main
import "fmt"
func main(
) {
m :=
map[string]int{
"a": 1
, "b": 2
, "c": 3
}
for key, value :=
range m {
fmt.Printf("键:%s, 值:%d\n"
, key, value)
}
}

三、循环控制语句

(一)break语句

break语句用于终止循环的执行。例如:

package main
import "fmt"
func main(
) {
for i := 1
; i <= 10
; i++ {
if i == 5 {
break
}
fmt.Println(i)
}
}

在这个例子中,当i等于5时,循环会终止。

(二)continue语句

continue语句用于跳过当前循环的剩余部分,直接进入下一次迭代。例如:

package main
import "fmt"
func main(
) {
for i := 1
; i <= 10
; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i

相关新闻

  • 《一元微积分》讲义习题
  • 开源量子模拟引擎:Quantum ESPRESSO本地部署教程,第一性原理计算轻松入门! - 实践
  • 详细介绍:QT常用控件(1)

最新新闻

  • Windows老游戏终极兼容解决方案:dxwrapper完全指南
  • 编写自定义脚本来自动化 vLLM 部署流程
  • 宣城市宁国吃正宗皖南徽菜 + 宁国农家土菜推荐去哪家? - 速递信息
  • 武汉买猫买狗去哪看?梦宠山庄实地体验分享 - 园友3800037
  • 从零到一:Jetlinks物联网平台服务器部署实战与避坑指南
  • (转)一次ANSYS EM 2023R1 “Request name electronics_desktop does not exist in the licensing pool.“的离谱解决记录

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号