go语言第二章循环结构(for循环)

简介: go语言第二章循环结构(for循环)

go语言第二章(for循环)

简介:在 Go 语言中没有 while 循环结构。但是,可以通过 for 循环和 break 语句来实现类似的功能。

首先没有编译器的可以通过这个网址进行敲代码:Lightly

for

在 Go 语言中,for 循环是一种用来重复执行代码块的结构。它的基本语法如下:

for 初始化语句; 条件表达式; 后置语句 {
    // 循环体
}

其中,初始化语句在第一次循环前执行,通常用于初始化变量;条件表达式在每次循环前求值,如果为 true,则继续执行循环体,否则跳出循环;后置语句在每次循环后执行,通常用于更新变量。

例如,以下代码使用 for 循环计算从 1 到 10 的和:

sum := 0
for i := 1; i <= 10; i++ {
    sum += i
}
fmt.Println(sum) // 输出 55

在这个例子中,初始化语句为 i := 1,将变量 i 初始化为 1;条件表达式为 i <= 10,表示只要 i 不大于 10 就继续执行循环体;后置语句为 i++,表示每次循环后将 i 加 1。

Go 语言的 for 循环可以有多种变形,例如:

  • 可以省略初始化语句和后置语句,只保留条件表达式,实现 while 循环的功能。
i := 0
for i < 10 {
    fmt.Println(i)
    i++
}
  • 可以省略所有语句,实现死循环的功能。
for {
    fmt.Println("无限循环")
}
  • 可以使用 range 关键字来遍历数组、切片、映射等集合类型。
arr := []int{1, 2, 3}
for index, value := range arr {
    fmt.Printf("索引:%d,值:%d\n", index, value)
}

除了以上常用的形式外,Go 语言的 for 循环还支持标签语法和 continue/break/return 语句,可以实现更复杂的控制流结构。需要注意的是,在编写循环时,要注意循环条件表达式的正确性,以及避免死循环的出现。

例题

1. 打印从 1 到 10 的数字

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

2. 计算 1 到 100 的和

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

3. 打印九九乘法表

package main
import "fmt"
func main() {
    for i := 1; i <= 9; i++ {
        for j := 1; j <= i; j++ {
            fmt.Printf("%d*%d=%d ", j, i, i*j)
        }
        fmt.Println()
    }
}

4. 使用 for 循环遍历数组

package main
import "fmt"
func main() {
    arr := []int{1, 2, 3}
    for i := 0; i < len(arr); i++ {
        fmt.Printf("索引:%d,值:%d\n", i, arr[i])
    }
}


相关文章
|
12天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
13天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
90 71
|
12天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
97 67
|
13天前
|
存储 Go
go语言中映射
go语言中映射
30 11
|
4天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
7月前
|
开发框架 安全 中间件
Go语言开发小技巧&易错点100例(十二)
Go语言开发小技巧&易错点100例(十二)
79 1
|
16天前
|
开发框架 Go 计算机视觉
纯Go语言开发人脸检测、瞳孔/眼睛定位与面部特征检测插件-助力GoFly快速开发框架
开发纯go插件的原因是因为目前 Go 生态系统中几乎所有现有的人脸检测解决方案都是纯粹绑定到一些 C/C++ 库,如 OpenCV 或 dlib,但通过 cgo 调用 C 程序会引入巨大的延迟,并在性能方面产生显著的权衡。此外,在许多情况下,在各种平台上安装 OpenCV 是很麻烦的。使用纯Go开发的插件不仅在开发时方便,在项目部署和项目维护也能省很多时间精力。
|
1月前
|
Go 数据安全/隐私保护 开发者
Go语言开发
【10月更文挑战第26天】Go语言开发
38 3
|
1月前
|
Java 程序员 Go
Go语言的开发
【10月更文挑战第25天】Go语言的开发
32 3
|
4月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
156 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库