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 循环变量初始化; 循环条件; 循环变量迭代{
循环操作(语句)
}
流程图
for循环的使用注意事项和细节讨论:
- 循环条件是返回一个bool值的表达式
- for循环的第二种使用方式
j := 1 //循环变量初始化
for j <= 10 {
fmt.Print("Hello World", j)
j++ //循环变量迭代
}
- for循环的第三种使用方式
for{
//循环执行语句
}
等价 for ;; {} 是个无限循环,通常需要配合break语句使用
k := 1
for{ //等价 for ;;{
if k <= 10{
fmt.Println("Hello",k)
} else {
break//跳出for循环
}
k++
}
- 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遍历方式而言,是按照字符方式遍历.因此如果字符串有中文也可以
下一篇: 查找整数