流程控制
if :
完整结构:
if 条件 {
}else if{
}else
{
}
简化结构:
if 条件{
}else{
}
极简结构:
if 条件{
}
特殊结构:
if age:=18; age<18{
fmt.Println("未成年")
} // 定义一个块级变量age。用完直接销毁的变量
for:
结构一:(正常for循环)
for i:=1; i<100;i++{
}
结构二:(当型结构)
for i<100 {
}
结构三: (键值循环)
适用对象: 数组, 切片,字符串,map及通道。
for i,v := range(array){
}
switch:
基础结构:
age := 100
switch age{
case 1:
fmt.Println()
case 2,3,4:
fmt.Println()
default:
fmt.Println()
}
// 条件变量定义成块级变量
switch age:= 100; age{
case 1:
fmt.Println()
case 2,3,4:
fmt.Println()
default:
fmt.Println()
}
变式:
switch {
case age <1:
fmt.Println()
case age > 2 && age < 10:
fmt.Println()
default:
fmt.Println()
}
fallthrough:
无条件执行下面的case语句。(尽量不要用)
swith {
case age <1:
fmt.Println()
fallthrough //当执行到这条语句的时候,后面的case语句无条件执行.
case age >2:
fmt.Println()
}
goto:
跳出当前结构,到指定的标签位置
for i:=0;i<100;i++{
if i == 50{
goto exitfor //跳出循环,到指定标签位置
}
}
exitfor: //定义标签
break
中断当前循环
for i:=0;i<100;i++{
if i == 50{
break //当i == 50 时退出循环
}
}
continue
中断当次循环
for i:=0;i<100;i++{
if i == 50{
continue //当i == 50 时退当次循环
}
fmt.Println(i) //50是不会打印出来的,因为跳过这次循环了
}