// ExecControl 流程控制语句package main
import("fmt")funcIfSegment(){
fmt.Println("If Seg")var a float32=12.125//变量的定义方式一if a >10{//判断条件不用带小括号
fmt.Println("a>10")//即使语句中只有一条语句,花括号也不能少}elseif a ==10{//左半花括号只能和条件在同一行
fmt.Println("a<=10")}else{
fmt.Println("a<10")}}funcSwitchSegment(){
fmt.Println("Switch Seg")var a int32=12switch a {//同样,条件不用括号case12://每个case自带C语言中的break,因此已经省略fallthrough//穿透这个case继续执行下一个casecase11:fallthroughcase10:fallthroughcase9:
fmt.Println("a==9")case8:
fmt.Println("a==8")default:
fmt.Println("cannot do switch")}}funcForSegment(){
fmt.Println("For Seg")var a int=3for{//go中没有while等循环,只有for循环(增强),无条件就是while(true)
a--
fmt.Println("while loop")if a ==0{break}}//传统的for方式,三个表达式for i :=0; i <5; i++{//变量定义方式二,使用:=定义并初始化,类型由系统识别
fmt.Println("trad for loop")}}funcmain(){IfSegment()SwitchSegment()ForSegment()}
使用示例
// LoopControlpackage main
import("fmt")funcembedLoop(){//以99乘法表输出为例for i :=1; i <10; i++{for j :=1; j <= i; j++{
fmt.Printf("%d*%d=%02d ", i, j, i*j)}
fmt.Println()}}funcbreakPointLoop(){//跳出指定循环
outer:for i :=1; i <10; i++{for j :=1; j <10; j++{if i ==5&& j ==5{break outer
}
fmt.Print("* ")}
fmt.Println()}}funcmain(){embedLoop()breakPointLoop()}