Golang学习笔记3——条件语句、循环语句
条件语句
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}else{ // else必须与大括号在一行
/* 在布尔表达式为 false 时执行 */
}
Go语言中,if语句表达式前可以加一条执行语句,例如:
if err := Connect(); err != nil {
fmt.Println(err)
return
}
Swith语句
switch语句基于不同条件执行不同语句,基本语法如下:
switch marks {
case 90:
grade = "A"
case 80:
grade = "B"
case 50, 60, 70:
grade = "C"
default:
grade = "D"
}
程序从上至下,依次进行测试,直到找到匹配项,执行响应语句,并不再对后面的case进行匹配。
如果需要执行后一个case,可以使用fallthrough。
如果没有匹配项,则执行default后的语句。
swith语句中,var1、val1、val2的类型必须一致。
如果switch后不加变量,则每个case后的表达式的值必须为bool类型,例如:
switch {
case grade == "A":
fmt.Printf("优秀!\n")
case grade == "B", grade == "C":
fmt.Printf("良好\n")
case grade == "D":
fmt.Printf("及格\n")
case grade == "F":
fmt.Printf("不及格\n")
default:
fmt.Printf("差\n")
}
Selet语句
// TODO:暂未学到通道
循环语句
Go语言for循环有四种形式
第一种:for init; condition; post { } 和C语言for循环一样
func main() {
sum := 0
for i := 0; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
}
第二种:for condition { } 等价于C语言中的while
for sum <= 10{
sum += sum
}
第三种:for {} 等价于C语言中的 for(;;)
for {
sum++ // 无限循环下去
}
第四种:for xxx := range xxx{} 相当于python中的for xxx in xxx:,用来遍历slice、map、数组、字符串等。
func main() {
strings := []string{"google", "runoob"}
for i, s := range strings {
fmt.Println(i, s)
}
numbers := [6]int{1, 2, 3, 5}
for i,x:= range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
}
}