前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go语言学习系列——循环语句:for循环(包括传统for、for-range)——【坚果派-红目香薰】

Go语言学习系列——循环语句:for循环(包括传统for、for-range)——【坚果派-红目香薰】

作者头像
红目香薰
发布于 2025-03-13 00:14:52
发布于 2025-03-13 00:14:52
8800
代码可运行
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode
运行总次数:0
代码可运行
作者简介:大数据领域优质创作者、CSDN博客专家 、阿里云博客专家、华为云课堂认证讲师、华为云社区云享专家、坚果派社区成员、具有10余年横向开发经验,全国教师技能大赛获奖教师,现从事于大学计算机领域教育工作。 主要内容:人工智能与大数据、Java、Python、C#、PHP、ASP.NET、ArkTS、FAQ、简历模板、学习资料、面试题库、就业指导等。 初心目标:持续输出,为技术人创造更多的价值。

1、基本for循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
	// 1. 标准for循环
	fmt.Println("=== 标准for循环 ===")
	for i := 0; i < 5; i++ {
		fmt.Printf("第%d次循环\n", i+1)
	}

	// 2. 类似while的for循环
	fmt.Println("\n=== while形式的for循环 ===")
	count := 0
	for count < 3 {
		fmt.Printf("count: %d\n", count)
		count++
	}

	// 3. 无限循环(使用break退出)
	fmt.Println("\n=== break退出循环 ===")
	sum := 0
	for {
		sum++
		if sum > 3 {
			break
		}
		fmt.Printf("sum: %d\n", sum)
	}

	// 4. continue示例
	fmt.Println("\n=== continue跳过本次循环 ===")
	for i := 1; i <= 5; i++ {
		if i%2 == 0 {
			continue
		}
		fmt.Printf("奇数: %d\n", i)
	}
}

2、for-range循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
	// 1. 遍历切片
	fmt.Println("=== 遍历切片 ===")
	numbers := []int{1, 2, 3, 4, 5}
	for index, value := range numbers {
		fmt.Printf("索引:%d, 值:%d\n", index, value)
	}

	// 2. 遍历字符串
	fmt.Println("\n=== 遍历字符串 ===")
	str := "Hello世界"
	for i, char := range str {
		fmt.Printf("位置:%d, 字符:%c\n", i, char)
	}

	// 3. 遍历map
	fmt.Println("\n=== 遍历map ===")
	scores := map[string]int{
		"语文": 85,
		"数学": 95,
		"英语": 90,
	}
	for subject, score := range scores {
		fmt.Printf("%s: %d分\n", subject, score)
	}

	// 4. 仅使用索引或值
	fmt.Println("\n=== 仅使用索引或值 ===")
	// 仅使用索引
	for i := range numbers {
		fmt.Printf("索引: %d\n", i)
	}
	// 仅使用值
	for _, value := range numbers {
		fmt.Printf("值: %d\n", value)
	}
}

3、嵌套循环示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
	// 1. 九九乘法表
	fmt.Println("=== 九九乘法表 ===")
	for i := 1; i <= 9; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%d×%d=%d\t", j, i, i*j)
		}
		fmt.Println()
	}

	// 2. 带标签的break
	fmt.Println("\n=== 带标签的break ===")
outer:
	for i := 0; i < 3; i++ {
		for j := 0; j < 3; j++ {
			if i*j >= 3 {
				break outer
			}
			fmt.Printf("i=%d, j=%d\n", i, j)
		}
	}
}

总结

循环语句要点:

1. for循环特点:

Go只有for一种循环语句 初始语句和后置语句是可选的 条件表达式也是可选的 支持break和continue 支持标签

2. for-range特点:

用于遍历数组、切片、字符串、map和channel 可以只获取索引或值 使用_忽略不需要的变量 遍历map时顺序是随机的

3. 使用建议:

1. 选择合适的循环方式: 计数循环用标准for 遍历数据结构用for-range 条件循环用while形式的for 2. 性能考虑: 避免在循环中分配内存 大数据结构考虑使用指针 合理使用break和continue 3. 代码风格: 保持循环体简洁 适当使用嵌套循环 合理使用标签 4. 注意事项: 防止死循环 注意边界条件 谨慎使用goto

章节

主题

内容

第一部分:Go 语言入门

Go 语言简介

Go 语言的起源与发展 Go 语言的特点和应用场景

开发环境搭建

安装 Go 语言开发包(Golang) 配置开发环境变量 选择 IDE / 编辑器(如 VS Code、GoLand)

第一个 Go 程序

编写 "Hello, World!" 理解程序结构和执行流程 使用 go run 和 go build

第二部分:基础语法

变量和数据类型

变量声明与初始化 基本数据类型(整数、浮点数、布尔值、字符串) 类型转换与推断

常量

常量定义与使用 iota 枚举原理与应用

运算符

算术、逻辑、比较运算符 运算符优先级与结合性

控制结构

条件语句(if-else、switch) 循环语句(for、for-range) 跳转语句(break、continue、goto)

第三部分:函数

函数定义与调用

函数语法与参数传递 多返回值 作用域(全局变量 vs 局部变量)

高级函数特性

闭包概念与使用 递归函数原理、实现与注意事项

第四部分:数组、切片和映射

数组

数组定义、初始化与遍历 多维数组

切片

切片概念与创建方式 动态扩容机制 常用操作(追加、删除、复制)

映射(Map)

映射定义、初始化与基本操作(增删查) 遍历与排序

第五部分:结构体和方法

结构体

结构体定义与使用 嵌套与组合

方法与接口

方法定义与接收器(值 vs 指针) 接口定义、实现与多态性

第六部分:错误处理和异常

错误处理

error 类型机制 自定义错误与处理函数

异常处理

panic 与 recover 使用 异常处理最佳实践

第七部分:并发编程

Go 协程(Goroutine)

协程概念与创建方式 并发执行与调度

通道(Channel)

通道定义与使用 同步与通信机制 缓冲通道与无缓冲通道

并发模式与同步原语

生产者 - 消费者模式 扇入 / 扇出模式 sync 包(互斥锁、WaitGroup)

第八部分:文件操作和输入输出

文件操作

文件打开、读写、关闭 创建、删除与重命名

输入输出

标准输入输出(fmt 包) 格式化处理与字符串操作

第九部分:测试和调试

单元测试

testing 包使用 测试覆盖率概念与计算

调试技巧

使用 gdb 或 IDE 调试功能 日志记录与调试信息输出

第十部分:项目实践

小型项目实践

实现命令行工具 开发简单 Web 服务器

项目结构与管理

目录结构组织 go mod 依赖管理

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、基本for循环
  • 2、for-range循环
  • 3、嵌套循环示例
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档