流程控制
// part1
if condition {
}
// part2
if condition {
} else {
}
// part3
if condition1 {
} else if condition2 {
} else if condition3 {
} else {
}
go里面的switch不需要break,即使不加break执行当前语句后也不会往下执行
switch var {
case var1:
case var2:
case var3:
default:
}
// eg:
var a int = 10
switch a {
case 0:
fmt.Println("a is equals 0")
case 1:
fmt.Println("a is equals 1")
default:
fmt.Println("a isn't equals 0 and 1")
}
如果在执行某个case里面的语句后,想继续执行下一个case的语句,可以使用fallthrough
switch a {
case 0:
fmt.Println("aaaa")
fallthrough
case 1:
fmt.Println("bbb")
default:
fmt.Println("ccc")
}
switch a {
case 0, 1, 2, 3, 4, 5:
fmt.Println("aa")
default:
fmt.Println("bb")
}
var i = 0
switch {
case i > 0 && i < 10:
fmt.Println("i > 0 and i < 10")
case i > 10 && i < 20:
fmt.Println("i > 10 and i < 20")
default:
fmt.Println("def")
}
switch i := 0; {
case i > 0 && i < 10:
fmt.Println("i > 0 and i < 10")
case i > 10 && i < 20:
fmt.Println("i > 10 and i < 20")
default:
fmt.Println("def")
}
// 写法
for 初始化语句; 条件判断; 变量修改 {
}
for i := 0; i < 100; i++ {
fmt.Println("i=%d\n", i)
}
for 条件 {
}
// eg
for i > 0 {
fmt.Println("i > 0")
}
for true {
fmt.Println("i > 0")
}
for {
fmt.Println("i > 0")
}
str := "hello world"
// i位数字下标
// v是对应的值
for i, v := range str {
fmt.Println(i, v)
}
用户可以定义label,然后可以使用goto或者continue等语句跟上这个label去跳转到相应的位置
// continue & label
LABEL1:
for i := 0l i < 10; i++ {
for j := 0; j < 10; j++ {
if j == 4 {
continue LABEL1
}
}
}
// goto & label
i := 0
HERE:
i++
if i == 5 {
return
}
goto HERE

浙公网安备 33010602011771号