前言
这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天,其实第五届青训营已经正式开课n多天了,笔记不断更新中,都是我听完课之后的总结和平时自己的学习积累,分享出来给有需要的朋友。
本文内容
本文将涉及到Go语言基础循环的具体使用和细节。
一、Go语言基础
循环和遍历
1.练习for循环
go语言循环一般都使用for循环,和其他语言不同是它条件可加括号可不加括号。如下:
for i, n := 1, 5; i <= n; i++ {
fmt.Printf("循环第%v次\n", i)
}
也可以下面这样写
var n = 5
for i := 1; i <= n; i++ {
fmt.Printf("循环第%v次\n", i)
}
死循环写法
i := 0
for { // 等价于for ;;{}
i++
fmt.Printf("这是第%v次循环\n", i)
if i == 10 {
break
}
}
2.练习Switch
var score int
print("请输入你的分数:")
fmt.Scanf("%v", &score)
switch score {
case 50:
fmt.Println("你的分数是50分")
case 60:
fmt.Println("你的分数是60分")
case 65, 70:
fmt.Println("你的分数是65分或者70分")
default:
fmt.Println("你的输入有误")
}
3.循环遍历方式
(1)使用for-range遍历数组
定义一个字符串型数组并赋值
var cityArray = [3]string{"北京", "上海", "深圳"}
for index, value := range cityArray {
• fmt.Printf("下标是%v,值是%s\n", index, value)
}
(2)字符串的遍历
方式一:直接使用for-range遍历 方式二:用for遍历,但要处理字符长度不一的问题,如下
str := "abcde测试"
var strArray = []rune(str) //用来处理有汉字的
for i := 0; i < len(strArray); i++ {
fmt.Printf("下标是%d,值是%c\n", i, strArray[i])
}
4.break跳出循环和goto
(1)用break就近原则跳出
for i := 0; i < 4; i++ {
for j := 0; j < 10; j++ {
if j == 2 {
break //就近原则跳出到外面一层for
}
fmt.Println("j=", j)
}
}
(2)使用break跳出至指定层
label2: //标签
for i := 0; i < 4; i++ {
for j := 0; j < 10; j++ {
if j == 2 {
break label2
}
fmt.Println("j=", j)
}
}
上面代码指定跳出到label2即最外面一层for
(3) go 语言中也有goto
可以直接跳转到我们需要的行
fmt.Println("ok1")
n := 30
if n > 20 {
goto label1 //会直接跳到ok5,不会输出ok2
}
fmt.Println("ok2")
label1:
fmt.Println("ok3")
5.循环练习实例
(1)打印金字塔
n := 10 //行数
for i := 1; i <= n; i++ {
for k := 1; k <= (n - i); k++ {
fmt.Print(" ")
}
for j := 1; j <= (i*2 - 1); j++ {
fmt.Print("*")
}
fmt.Println()
}
(2) 打印空心金字塔
n := 10 //行数
for i := 1; i <= n; i++ {
for k := 1; k <= (n - i); k++ {
fmt.Print(" ")
}
if i != 1 {
fmt.Print("*")
}
for j := 1; j <= (i*2 - 3); j++ {
if i != n {
fmt.Print(" ")
} else {
fmt.Print("*")
}
}
fmt.Print("*")
fmt.Println()
}
6.注意细节
(1) 使用for循环时,如果for后面加了小括号,则需要和左大括号{在同一行,否则报错
(2) 在Go中是不支持while和do-while用法的,只支持for和for-range。
总结
Go语言for循环集合了其他语言的优点,既有传统静态语言之美,又有新一代动态语言对于序列结构遍历的借鉴。特别是只用for关键字,让循环的编写更加简洁明了。
写在最后
本文是我的日常学习笔记,如果哪里有写错,麻烦请指出来,感谢。这里我也推荐大家多写笔记,写笔记是一个很好的习惯,可以帮助我们更好的吸收和理解学习的新知识,新的一年大家一起加油!