package main import "fmt" func main() { // 1. 三段式循环:初始化;继续循环的条件;每轮结束后的操作。 // 执行顺序:初始化 -> 判断条件 -> 循环体 -> i++ -> 再判断条件。 fmt.Println("=== 三段式循环 ===") for i := 1; i <= 3; i++ { fmt.Printf("第 %d 次学习 Go\n", i) } // i 只在上面的 for 语句内有效,循环外不能使用它。 // 2. 累加:每轮把当前数字加入 sum。 fmt.Println("\n=== 累加求和 ===") sum := 0 for n := 1; n <= 5; n++ { sum += n // 等价于 sum = sum + n。 } fmt.Printf("1 到 5 的和:%d\n", sum) // 3. 只有条件的循环:相当于 C 中的 while。 // Go 没有 while 关键字;注意更新变量,避免死循环。 fmt.Println("\n=== 条件循环 ===") count := 3 for count > 0 { fmt.Printf("倒计时:%d\n", count) count-- } fmt.Println("开始!") // 4. continue:跳过本轮剩余代码,进入下一轮。 // 三段式循环中,continue 之后仍会执行更新语句 n++。 fmt.Println("\n=== continue:只输出奇数 ===") for n := 1; n <= 5; n++ { if n%2 == 0 { // % 是取余运算符,偶数除以 2 的余数是 0。 continue } fmt.Printf("奇数:%d\n", n) } // 5. 不写条件的 for 会一直循环,需要通过 break 等方式退出。 // break 结束当前循环,不是结束整个 main 函数。 fmt.Println("\n=== break:结束循环 ===") attempt := 1 for { fmt.Printf("第 %d 次尝试\n", attempt) if attempt == 3 { break } attempt++ } fmt.Println("循环已结束,后续代码继续执行") // 6. range 遍历字符串:每轮得到字符的字节索引和 rune 值。 // %c 将 rune 按字符输出;中文字符不一定只占一个字节。 fmt.Println("\n=== range:遍历字符串 ===") for index, char := range "Go语言" { fmt.Printf("字节索引:%d,字符:%c\n", index, char) } }