Bootstrap

Go- for循环

Go 学习笔记,学习内容

主要介绍以下内容:

  • 基于计数器的迭代

  • 基于条件判断的迭代

  • 无限循环

  • for-range结构

代码示例可以直接运行

package main

import (
	"fmt"
)

func main() {
	/*
	   基于计数器的迭代
	*/
	for i := 0; i < 3; i++ { // 左花括号必须和for在同一行,代码块中不要修改条件变量的值
		fmt.Printf("%d ", i) // 输出:0 1 2
	}
	fmt.Println()

	str := "Hello"
	for i := 0; i < len(str); i++ {
		fmt.Printf("%c ", str[i]) // 输出:H e l l o
	}
	fmt.Println()

	/*
	   基于条件判断的迭代
	*/
	var i int = 3
	for i > 0 {
		fmt.Printf("%d ", i) // 输出:3 2 1
		i--
	}
	fmt.Println()

	/*
	   无限循环
	   for ;; { // ;; 会被 gofmt 移除
	       break
	   }
	*/
	for {
		break
	}

	for true {
		break
	}

	for i := 0; ; i++ {
		break
	}

	/*
	   for-range结构
	   for ix, val := range(xxx) xxx可以为字符串、数组、切片、map等,可以为任何一个集合
	   val为值的拷贝,不是引用
	*/
	str = "GO FOR IT"
	for pos, char := range str {
		fmt.Printf("%d %c\n", pos, char)
	}
	/* 以上代码块输出:
	   1 O
	   2
	   3 F
	   4 O
	   5 R
	   6
	   7 I
	   8 T
	*/
}