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

发布于:2024-12-06 ⋅ 阅读:(121) ⋅ 点赞:(0)

循环

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 的并发编程当中将会用到大量的无限循环。


网站公告

今日签到

点亮在社区的每一天
去签到