go语言流程控制
if语句
package main
import (
"fmt"
)
func main() {
age := 19
if age > 18 {
fmt.Println("成年")
} else if age > 35 {
fmt.Println("青年")
} else {
fmt.Println("未成年")
}
}
作用域
package main
import (
"fmt"
)
func main() {
//作用于 age变量只在if条件判断语句中生效
if age := 19; age > 19 {
fmt.Println("成年")
} else {
fmt.Println("未成年")
}
}
for循环
package main
import "fmt"
func main() {
//基本格式
// for i := 0; i < 10; i++ {
// fmt.Println(i)
// }
//变种1
// var i = 5
// for ; i < 10; i++ {
// fmt.Println(i)
// }
// 变种2
// var i = 5
// for i < 10 {
// fmt.Println(i)
// i++
// }
//无线循环
// for {
// fmt.Println("123")
// }
//for range循环
_ = 1
s := "hello "
for i, v := range s {
fmt.Printf("%d %c\n", i, v)
}
}
switch
package main
import "fmt"
func main() {
//switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough(不鼓励)
switch n := 3; n {
case 1:
fmt.Println(1)
case 2:
fmt.Println(2)
case 3:
fmt.Println(3)
default:
fmt.Println(666)
}
}
goto
package main
import "fmt"
func main() {
//goto + label实现跳出多层for循环
for i := 0; i < 10; i++ {
for j := 'A'; j < 'Z'; j++ {
if j == 'C' {
//如果用break只能跳出一次循环
goto XX
}
fmt.Printf("%v-%c\n", i, j)
}
}
XX: //label标签
fmt.Println("over")
}