自学内容网 自学内容网

【Golang】Golang基础语法(五):循环

循环

Golang 的 for 循环不加括号:

下面的示例使用 for 循环实现了整型数转二进制表示:

package main

import (
"fmt"
"strconv"
)

func convertToBin(n int) string {
// 将整数转为二进制表达式
result := ""
if n == 0 {
return "0"
}
for ; n > 0; n /= 2 {
lsb := n % 2
result = strconv.Itoa(lsb) + result
// strconv.Itoa 完成 int 到 string 的转换
}
return result
}

func main() {
fmt.Println(
convertToBin(5),  // 0101
convertToBin(13), // 1101
convertToBin(7237885),
convertToBin(0),  // Golang 在换行时, 需要加上逗号, 否则编译器会报错
)
}

下面是一个省略了起始条件和递增条件的 for 循环,它只有结束条件。需要注意的是,Golang 只有 for 作为循环语句而没有 while,因此只有结束条件的 for 类似于 C++ 当中的 while:

package main

import (
"bufio"
"fmt"
"os"
)

func printFile(filename string) {
file, err := os.Open(filename)
if err != nil {
panic(err)
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
// 这个 for 循环没有起始条件也没有递增条件
// 它只有结束条件
// 需要注意的是 Golang 只有 for 循环
// 但是它可以得到 C++ 中 for 循环的效果
fmt.Println(scanner.Text())
}
}

func main() {
printFile("abc.txt")
}

同样地,for 循环甚至可以没有结束条件,使之成为无限循环:

func forever() {
for {
fmt.Println("abc")
}
}

Golang 的无限循环非常的简洁,原因与这门语言的特性有关。

Golang 的并发编程当中将会用到大量的无限循环。


原文地址:https://blog.csdn.net/Coffeemaker88/article/details/144227472

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!