# 选择判断
## IF :
~~~
var a int = 3
if a == 3 {
fmt.Println("a==3")
}
//支持一个初始化表达式 初始化字句和条件表达式直接需要用分号分隔
if b := 3; b == 3 {
fmt.Println("b==3")
}
~~~
~~~
if a := 3; a == 4 {
fmt.Println("a==4")
} else { //左大括号必须和条件语句或else在同一行
fmt.Println("a!=4")
}
~~~
## switch:里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码
~~~
var score int = 90
switch score {
case 90:
fmt.Println("优秀")
//fallthrough
case 80:
fmt.Println("良好")
//fallthrough
case 50, 60, 70:
fmt.Println("一般")
//fallthrough
default:
fmt.Println("差")
}
~~~
# 循环
## for
~~~
var i, sum int
for i = 1; i <= 100; i++ {
sum += i
}
fmt.Println("sum = ", sum)
~~~
## range 循环slice map 数组使用
~~~
s := "abc"
//利index取值
for i := range s { //支持 string/array/slice/map。
fmt.Printf("%c\n", s[i])
}
//忽略index取值
for _, c := range s { //
fmt.Printf("%c\n", c)
}
~~~