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