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()
  }
}