分支结构
- if else else if的使用跟其他语言基本一致,就是判断条件不需要加括号
- switch:
- switch后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)
- case后面的值如果是常量值(字面量),则要求不能重复
- case后的各个值的数据类型,必须和 switch 的表达式数据类型一致
- case后面可以带多个值,使用逗号间隔。比如 case 值1,值2...
- case后面不需要带break(与其他语言不同之处)
- default语句不是必须的,位置也是随意的。
- switch后也可以不带表达式,当做if分支来使用
- switch后也可以直接声明/定义一个变量,分号结束,不推荐
- switch穿透,利用fallthrough关键字,如果在case语句块后增加fallthrough ,则会继续执行下一个case,也叫switch穿透。(跟Java和c/c++加强switch一致)
循环结构
- 相比其他语言,go中只有for循环一种,将for和while统一在一块。
- 循环条件照样不需要括号,然后for的初始表达式 不能用var定义变量的形式,要用:=
- for range则如同其他语言的加强for循环一般,但可以设置两个参数来分别接收索引和具体值
import "fmt"
func main(){
//定义一个字符串:
var str string = "hello golang你好"
for i, value := range str {
fmt.Printf("索引为:%d,具体的值为:%c \n", i, value)
}
//对str进行遍历,遍历的每个结果的索引值被i接收,每个结果的具体数值被value接收
//遍历对字符进行遍历的
}