Go知识点总结2-流程控制
流程控制
分支控制
- 单分支
- 双分支
- 多分支
1 | package main |
1 | // 练习题 |
1 | // 多分支 |
嵌套分支
在一个分支结构中又嵌套了一个完整的分支结构,里面的叫做内层分支结构,外层的叫做外层分支。嵌套分支最多3层
1 | package main |
switch
case
后面可以是个表达式:变量、常量、有返回值的函数case
和switch
的表达式必须相同case
后面可以有多个表达式case
后面表达式中的常量不能重复,但是变量可以重复case
后面不需要break
,default
不是必须
1 | package main |
for
for
基本遍历方法
1 | package main |
-
字符串的
for-range
: -
如果字符串中有中文,传统的方式是按照字节遍历,utf-8中一个字节占据3个字节;解决办法:将字符转成
[]rune
类型的切片。 -
for-range
方式使用的是字符方式遍历1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package main
import "fmt"
func main(){
var str string = "hello, world!北京"
str1 := []rune(str) // 强制转换成切片
for i := 0; i < len(str1); i++{
fmt.Println("%c\n",str1[i])
}
// for-range循环
for index, value := range str {
fmt.Println("index=%d value=%c \n", index, value )
}
}
1 | package main |
while
go
语言中没有while
语法。
1 | // 输出10句`hello world` |
多重循环控制
1 | // 3个班,每个班5个同学,求出每个班的平均分和所有班的平均分 |
金字塔案例
1 | package main |
九九乘法表
1 | package main |
break
1 | package main |
- 通过标签
label
指定跳到哪一层 break
语句只能跳出离它最近的for
循环
1 | func main(){ |
1 | // 标签使用 |
1 | package main |
continue
结束本次循环,继续执行下次循环;也可以通过指明标签来指定跳转到某个循环中。
1 | package main |
1 | package main |
goto
goto
语句可以无条件的转移到程序中指定的行- 通常和条件语句配合使用,用来实现条件转移
- 不主张使用
goto
语句
1 | package main |
return
return
使用在方法或者函数中,遇到它,则跳出整个函数或方法。
1 | package main |