一、if else for
if
写在 if 里面,则是局部变量:
package main
import (
"fmt"
)
func main() {
if age := 34; age > 20 {
fmt.Println("成年人", age)
}
fmt.Println(age) // 这行没有输出,会报错
}
写在 if 外面,则是全局变量:
package main
import (
"fmt"
)
func main() {
age := 34
if age > 20 {
fmt.Println("成年人", age)
}
fmt.Println(age)
}
输出:
成年人 34
34
细节
- if {} 括号不能省略
-
{
必须紧挨着条件,不能换行
for
初始化值可以写在 for 外面,但是循环里第一个 ;
还是必须写,否则报错。
package main
import (
"fmt"
)
func main() {
i := 1
for ; i < 10; i++ {
fmt.Println(i)
}
}
for range:切片
swich case
条件判断。初始化赋值也可以写在 switch 里面,但是要加 ;
。
Golang 中 switch case 可以不写 break。多个 case 值用 ,
隔开。
分支使用表达式,此时 switch 语句后面不需要再写判断变量。如果写了判断变量,则会报错。
package main
import (
"fmt"
)
func main() {
var age = 30
switch {
case age < 24:
fmt.Println("好好学习")
case age >= 24 && age <= 60:
fmt.Println("好好赚钱")
case age > 60:
fmt.Println("注意身体")
default:
fmt.Println("输入错误")
}
}
Golang 穿透
fallthrough
可以执行满足 case 条件的下一个 case,只穿透紧挨着的 case 一次。
package main
import (
"fmt"
)
func main() {
var age = 30
switch {
case age < 24:
fmt.Println("好好学习")
case age >= 24 && age <= 60:
fmt.Println("好好赚钱")
fallthrough
case age > 60:
fmt.Println("注意身体")
default:
fmt.Println("输入错误")
}
}
输出:
好好赚钱
注意身体
二、continue break goto
在多重循环中,可以用标号 label 标出想 break 的循环。
continue 仅限在 for 循环内使用,只跳出当前循环。
goto 跳转到指定标签。
package main
import (
"fmt"
)
func main() {
var n = 30
if n > 24 {
fmt.Println("成年人")
goto label3
}
fmt.Println("a")
fmt.Println("b")
label3:
fmt.Println("c")
}
输出:
成年人
c
网友评论