go语言学习(二)——流程控制
下面是go语言的流程控制
// GoStudy2 project main.go
/*go语言学习
流程控制
*/
package main
import (
"fmt"
)
func main() {
//if
//v11 := -10
fmt.Println("******************if")
if v11 := 10; v11 < 0 { //if后面可以定义变量,用;隔开
fmt.Println("v11 < 0")
} else if v11 == 0 { //不能另起一行
fmt.Println("v11 == 0")
} else {
fmt.Println("v11 > 0")
} //不允许将最终的return放到if...else...中,编译不通过
//switch
fmt.Println("**************switch")
v21 := 1
switch v21 {
case 1:
fmt.Println("v21 is", v21)
fmt.Println("run next")
fallthrough //执行完这个case之后强制执行以一个case中的内容
case 2, 3: //可以几个值放在一起
fmt.Println("v21 is", v21)
case 4:
fmt.Println("v21 is", v21)
default:
fmt.Println("other value")
}
switch { //可以不带参数,相当于if...else if...else
case v21 < 0:
fmt.Println("v21 < 0")
case v21 == 0:
fmt.Println("v21 == 0")
case v21 > 0:
fmt.Println("v21 > 0")
default:
}
//for
fmt.Println("**********************for")
v31 := 0
for i := 0; i < 100; i++ { //一般循环
v31 += i
}
fmt.Println(v31)
v32 := 0
for { //无线循环
v32++
if v32 > 100 {
break
}
}
fmt.Println(v32)
v33 := []int{2, 3, 5, 7, 1}
for i, j := 0, len(v33)-1; i < j; i, j = i+1, j-1 { //支持多重赋值;
v33[i], v33[j] = v33[j], v33[i]
}
fmt.Println(v33)
OuterLoop: //标签
for i := 0; i < 100; i++ {
fmt.Println("out loop", i)
for j := 0; j < 100; j++ {
//fmt.Println("in loop", j)
if j > 50 {
break OuterLoop //跳出outerloop所在层的循环,这里直接跳出最外面的循环
}
}
}
//goto
fmt.Println("**********************goto")
v41 := true
GoToTip:
fmt.Println("goto run")
if v41 {
v41 = !v41
goto GoToTip
}
}
以上,流程控制完成

浙公网安备 33010602011771号