🌟 用 Go 语言解锁无限循环的魔力:轻松搞定 `for` 循环的多种妙用! 💫

334 阅读3分钟

在 Go 语言中,for 循环不仅可以用来实现类似于 Java 中的 while 循环的功能,还能带来很多有趣的编程体验哦!🎉 其实,Go 语言没有单独的 while 关键字,但别担心,所有的循环结构都可以通过万能的 for 解决!🤗

让我们用一些有趣的例子来看看吧~ 🌟

示例 1:简单的 while 循环

Java 版本:

int i = 0;
while (i < 10) {
    System.out.println(i);
    i++;
}

Go 版本:

package main

import "fmt"

func main() {
    i := 0
    for i < 10 {
        fmt.Println(i)
        i++
    }
}

是不是很简单?在 Go 里,for 循环直接表达了 while 的逻辑!🎈

示例 2:无限循环

Java 版本:

while (true) {
    // 代码
}

Go 版本:

package main

func main() {
    for {
        // 代码
    }
}

无限循环也很轻松搞定啦!✨

示例 3:带有 break 条件的 while 循环

Java 版本:

int i = 0;
while (true) {
    if (i >= 10) {
        break;
    }
    System.out.println(i);
    i++;
}

Go 版本:

package main

import "fmt"

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

Go 语言里,我们可以灵活地用 break 来控制循环的终止。🛑

传统的 for 循环

Java 版本

传统的 for 循环,用于遍历数组或集合:

int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

Go 版本

Go 语言中类似的 for 循环:

package main

import "fmt"

func main() {
    arr := []int{1, 2, 3, 4, 5}
    for i := 0; i < len(arr); i++ {
        fmt.Println(arr[i])
    }
}

看看,多么简洁明了!👏

增强的 for 循环(foreach

Java 版本

增强的 for 循环让遍历变得更简单:

int[] arr = {1, 2, 3, 4, 5};
for (int num : arr) {
    System.out.println(num);
}

Go 版本

Go 语言使用 for range 实现:

package main

import "fmt"

func main() {
    arr := []int{1, 2, 3, 4, 5}
    for _, num := range arr {
        fmt.Println(num)
    }
}

for range,遍历数组更加得心应手哦!💕

遍历映射(Map)

Java 版本

在 Java 中遍历映射:

Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

Go 版本

在 Go 语言中使用 for range 遍历映射:

package main

import "fmt"

func main() {
    m := map[string]int{"one": 1, "two": 2, "three": 3}
    for key, value := range m {
        fmt.Println(key, ":", value)
    }
}

操作简单又方便!🌈

遍历字符串

Java 版本

遍历字符串就像遍历字符数组:

String str = "hello";
for (char ch : str.toCharArray()) {
    System.out.println(ch);
}

Go 版本

Go 语言中也可以轻松遍历字符串:

package main

import "fmt"

func main() {
    str := "hello"
    for _, ch := range str {
        fmt.Println(string(ch))
    }
}

每个字符都不放过!😊

do-while 循环

Java 版本

Java 中的 do-while 循环:

int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 10);

Go 版本

在 Go 里,我们可以这样实现:

package main

import "fmt"

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

没有 do-while 关键字,我们用 forbreak 一样实现了哦!🌟

更加通用的 do-while 实现

我们还可以把循环逻辑封装在一个函数中:

package main

import "fmt"

func doWhile(condition func() bool, action func()) {
    for {
        action()
        if !condition() {
            break
        }
    }
}

func main() {
    i := 0
    doWhile(func() bool {
        return i < 10
    }, func() {
        fmt.Println(i)
        i++
    })
}

灵活又强大,Go 语言的 for 循环真是无所不能呢!💪

总结一下:Go 语言中的 for 循环非常灵活,可以用来实现传统的 for 循环、while 循环、do-while 循环和 foreach 遍历。无论是数组、切片、映射还是字符串,都能轻松搞定!✌️

快来试试这些有趣的循环吧,你一定会爱上 Go 语言的!🌟💖