for循环
520字约2分钟
2025-02-03
for循环
Go语言中的for循环与其他语言类似,但有一些特有的用法。常见的for循环有三种形式:
- 基本的for循环
- 类似while的for循环
- 无限循环
package main
import (
"fmt"
"time"
)
func main() {
// 基本的for循环
for i := 0; i < 5; i++ {
if i == 3 {
continue
}
fmt.Println("基本for循环:", i)
}
// 类似while的for循环
j := 0
for j < 5 {
fmt.Println("类似while的for循环:", j)
j++
}
// 无限循环
func main() {
// 无限循环
k := 0
for {
fmt.Println("无限循环:", k)
k++
time.Sleep(time.Second)
}
}
}
在上面的示例中,我们展示了三种不同形式的for循环。第一种是最为常见的形式,包括初始化语句、循环条件和后续语句。第二种形式类似于其他语言中的while循环。第三种形式是一种无限循环,通过在循环内手动控制执行逻辑。
range
Go语言中的for range循环是用来遍历数组、切片、字符串、map或通道(channel)的。
package main
import "fmt"
func main() {
// 创建一个整数切片
intSlice := []int{1, 2, 3, 4, 5}
// 使用for range遍历切片
fmt.Println("使用for range遍历切片:")
for index, value := range intSlice {
fmt.Printf("索引: %d, 元素: %d\n", index, value)
}
// 创建一个字符串
testString := "hello"
// 使用for range遍历字符串
fmt.Println("使用for range遍历字符串:")
for index, value := range testString {
fmt.Printf("索引: %d, 元素: %c\n", index, value)
}
// 创建一个map
stringToInt := map[string]int{"one": 1, "two": 2, "three": 3}
// 使用for range遍历map
fmt.Println("使用for range遍历map:")
for key, value := range stringToInt {
fmt.Printf("键: %s, 值: %d\n", key, value)
}
}
break,continue
break用于跳出当前循环
continue用于跳过本轮循环
例如打印九九乘法表
package main
import "fmt"
func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d\t", i, j, i*j)
}
fmt.Println()
}
}
另一种写法
package main
import "fmt"
func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= 9; j++ {
if j > i {
// 去掉 列比行大的数据
continue
}
fmt.Printf("%d * %d = %d\t", i, j, i*j)
}
fmt.Println()
}
}