条件语句与循环语句
条件语句有:if...else, switch, select
循环语句有:for, while
if...else if...else
var a int = 90
var b int = 81
if a < 100 {
fmt.Println("优秀")
} else if a < 90 && a > 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
switch
var username string = "tom"
switch username {
case "tom", "tony":
fmt.Println("boy")
break // 可以不写break。想穿透写fallthrought
case "sindy":
fmt.Println("girl")
break
default:
break
}
select
for
for i := 1; i <= 5; i++ {
if i == 1 {
continue // 继续本层循环
}
if i == 2 {
break // 跳出本层循环
}
fmt.Println(i)
}
lable1: // 循环标记标签
for i := 1; i <= 10; i++ {
for k := 1; k <= 5; k++ {
if i == 6 {
break
}
if i == 7 {
break lable1 // 跳出标记的循环。continue也可以使用标签
}
}
}
for range(键值循环)
遍历数组、切片、字符串、map及通道(channel)
- 数组、切片、字符串返回索引和值
- map返回键和值
- 通道(channel)只返回通道内的值
var str = "你好world"
var arr = []string{"tom","tony","sindy"}
for k,v := range str {
fmt.Printf("key=%v", k, "val=%c\n", v)
}
for _,v := range arr {
fmt.Println(v)
}
goto
var n int = 20
if n > 10 {
fmt.Println("字符")
goto lable3
}
fmt.Println("a")
fmt.Println("b")
lable3:
fmt.Println("c")
fmt.Println("d")