4.4 Go goto continue break
Go语言的goto语句可以无条件的跳转到指定的代码行执行。
goto语句一般与条件语句结合,实现条件转义,跳出循环体等。
Go程序不推荐使用goto
,以免造成程序混乱,难以阅读。
实例:
package main import "fmt" func main() { var num int = 100 fmt.Println("num值100") if num > 90 { goto label //此处代码已经不走,直接goto了 fmt.Println("呵呵") } fmt.Println("我是占位符") fmt.Println("我是占位符") fmt.Println("我是占位符") fmt.Println("我是占位符") fmt.Println("我是占位符") //触发了goto,进入本次标签 label: fmt.Println("由于触发了goto,进入到我这里了") fmt.Println("我也是占位符") fmt.Println("我也是占位符") fmt.Println("我也是占位符") }
1.1. break
用于中断当前循环
或跳出switch中的case语句
package main import "fmt" func main() { var num int = 10 for num < 50 { fmt.Printf("a的值是:%v ", num) num++ if num > 30 { break //跳出for循环 } } }
break label
当处于多层嵌套for循环,直接跳出所有循环嵌套,可以用break label特性
package main import ( "fmt" ) func main() { fmt.Println("主程序开始执行") Exit: for i := 0; i < 9; i++ { for j := 0; j < 9; j++ { if i+j > 15 { fmt.Println("程序结束") break Exit } } } fmt.Println("已跳出循环体") }
1.2. continue语句
continue语句跳出当前循环剩余代码,继续进行下一次循环。
package main import "fmt" func main() { /* 定义局部变量 */ var a int = 10 /* for 循环 */ for a < 20 { if a == 15 { /* 当a等于15时,跳出循环,让a++,等于16,跳过本次循环 */ a++ continue } fmt.Printf("a 的值为 : %d ", a) a++ } }
1.3. return语句
return用在方法或函数中,表示终止所在的方法或函数(method与function)。
return在main函数中,表示终止main函数,终止程序。
package main import "fmt" func main() { for i := 0; i <= 10; i++ { if i == 5 { return //直接退出main函数了 } fmt.Printf("本次循环次数:%d ", i) } //永远走不带这里了,第五次for循环时候,直接return了 fmt.Println("循环结束,走到了我") }