下面是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 } }
以上,流程控制完成