if语句:
package main
import "fmt"
func main() {
//if后面没有括号
if 1 < 2 {
fmt.Println("1<2")
}
var a = 10
//初始化表达式-a的作用范围只在if语句块
if a := 1; a > 1 {
fmt.Println("a > 1")
fmt.Println(a)
} else {
fmt.Println("! a > 1")
fmt.Println(a)
}
fmt.Println(a)
}
输出如下:
1<2
! a > 1
1
10
for语句:
package main
import "fmt"
func main() {
//第1种形式无限循环
a := 1
for {
a++
if a > 3 {
break
}
fmt.Println(a)
}
fmt.Println(a)
//第2种形式
for a <= 6 {
a++
fmt.Println(a)
}
//第3种形式
for i := 0; i < 3; i++ {
a++
fmt.Println(a)
}
fmt.Println(a)
}
2
3
4
5
6
7
8
9
10
10
case语句:
package main
import "fmt"
func main() {
a := 1
switch a {
case 0:
fmt.Println("a==0")
case 1:
fmt.Println("a==1")
default:
fmt.Println("None")
}
//case表达式
switch {
case a >= 0:
fmt.Println("a>=0")
case a >= 1:
fmt.Println("a>=1")
default:
fmt.Println("None")
}
//case表达式 fallthrough
switch {
case a >= 0:
fmt.Println("a>=0")
case a >= 1:
fmt.Println("a>=1")
fallthrough
case a >= -1:
fmt.Println("a>=-1")
default:
fmt.Println("None")
}
//初始化b只在case中有效范围
switch b := 1; {
case b >= 0:
fmt.Println("b>=0")
fallthrough
case b >= 1:
fmt.Println("b>=1")
fallthrough
case b >= -1:
fmt.Println("b>=-1")
default:
fmt.Println("None")
}
// undefined: b--如果在case中定义,那么只在局部有效
//fmt.Println(b)
}
a==1
a>=0
a>=0
b>=0
b>=1
b>=-1
goto、continue、break语句:
package main
import "fmt"
func main() {
//goto直接调到LAbEL2
for {
for i := 0; i < 10; i++ {
if i > 3 {
goto LAbEL2
}
}
}
fmt.Println("PreLAbEL2")
LAbEL2:
fmt.Println("LastLAbEL2")
//break跳出和LAbEL1同一级别的循环,继续执行其他的
LAbEL1:
for {
for i := 0; i < 10; i++ {
if i > 3 {
break LAbEL1
}
}
}
fmt.Println("OK")
//continue
LABEL3:
for i := 0; i < 3; i++ {
for {
continue LABEL3
}
}
fmt.Println("ok")
}
输出如下:
LastLAbEL2
OK
ok
有疑问加站长微信联系(非本文作者)