Go 语言循环语句


Go 语言循环语句

Go 语言提供了 for 循环语句,用于重复执行一段程序逻辑,直到循环条件不再满足时终止。

forrange 语句

for 循环语句可以使用多种语法形式。

for 循环语法

for 循环语法的基本形式如下:

for initialization; condition; post {
    // 循环语句块
}

其中:

  • initialization:循环变量初始化语句,仅在循环开始时执行一次。
  • condition:逻辑表达式,控制循环是否继续执行。
  • post:循环后执行语句,仅在循环体执行完成后再次执行。

例如,下面的代码示例使用 for 循环语句求和:

sum := 0
for i := 0; i < 10; i++ {
    sum += i
}

range 循环语法

range 循环语法用于遍历数组、切片、字符串、map 和通道等数据类型中的元素。

for key, value := range expression {
    // 循环语句块
}

其中:

  • key:对于数组和切片,表示索引;对于 map,表示键;对于字符串,表示字符的字节索引。
  • value:表示元素的值。
  • expression:需要遍历的数据类型。

例如,下面的代码示例使用 range 循环语句遍历切片:

numbers := []int{1, 2, 3, 4, 5}
for i, v := range numbers {
    fmt.Printf("Index %d, Value %d\n", i, v)
}

for 循环语句的控制语句

for 循环语句中提供了多种控制语句,用于控制循环体的执行流程。

break 语句

break 语句用于结束循环体的执行,并跳出循环语句。

例如,下面的代码示例使用 for 循环语句和 break 语句查找数组中的某个元素:

numbers := []int{1, 2, 3, 4, 5}
key := 3
for i, v := range numbers {
    if v == key {
        fmt.Printf("Found key %d at index %d\n", key, i)
        break
    }
}

continue 语句

continue 语句用于结束当前循环体的迭代,并进入下一个迭代。

例如,下面的代码示例使用 for 循环语句和 continue 语句计算偶数之和:

sum := 0
for i := 0; i < 10; i++ {
    if i%2 != 0 {
        continue
    }
    sum += i
}

goto 语句

goto 语句用于无条件地跳转到指定标签(label)处,可形成无限循环或跳转。

例如,下面的代码示例使用 for 循环语句和 goto 语句输出一个10次的循环:

i := 0
Loop:
for {
    fmt.Println(i)
    i++
    if i == 10 {
        break Loop
    }
}

总结

Go 语言的循环语句提供了丰富的功能和语法形式,可支持各种场景下的循环处理。使用 for 循环语句和控制语句,可以轻松实现多样化的循环逻辑。