欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Golang的for循环

程序员文章站 2022-06-24 15:42:56
...

for循环控制

package main
import(
	"fmt"
)

func main(){
	for i := 1; i<=10;i++{
		fmt.Println("Hello,World", i)
	}
}

基本语法:

for 循环变量初始化; 循环条件; 循环变量迭代{
	循环操作(语句)
}

流程图
Golang的for循环
for循环的使用注意事项和细节讨论:

  1. 循环条件是返回一个bool值的表达式
  2. for循环的第二种使用方式
		j := 1 //循环变量初始化
		for j <= 10 {
		fmt.Print("Hello World", j)
	j++ //循环变量迭代
}
  1. for循环的第三种使用方式
for{
	//循环执行语句
}

等价 for ;; {} 是个无限循环,通常需要配合break语句使用

	k := 1
	for{ //等价 for ;;{
		if k <= 10{
		fmt.Println("Hello",k)
		} else {
			break//跳出for循环
		}
		k++
	}
  1. Golang提高for-range的方式,可以方便遍历字符串和数组
//传统方式
var str string = "hello,world"
for i:= 1; i< len(str); i++{
	fmt.Printf("%c \n", str[i])
}

//汉字
var str string = "hello,world!明天"
str2 =[]rune(str) //把str转成[]rune
for i:= 1; i< len(str2); i++{
	fmt.Printf("%c \n", str2[i])
}

//第二种方式
str = "abd~ok"
for index, val := range str{
	fmt.Printf("index=%d, val=%c \n",index, val)
}
如果字符串含有中文,传统的遍历字符串方式,就是错误,会出现乱码,原因是传统的对字符串的遍历是按照字节来遍历,而汉字在utf8编码对应3个字节
解决:需要将str转成[rune] 切片

对应for-range遍历方式而言,是按照字符方式遍历.因此如果字符串有中文也可以
相关标签: golang for