go 的程序控制大致分成三种 if for case 语句
1、 if 循环
if-else 语句之间可以有任意数量的 else if。
条件判断顺序是从上到下。如果 if 或 else if 条件判断的结果为真,则执行相应的代码块。 如果没有条件为真,则 else 代码块被执行。
语法结构
if condition{
}else if condition{
}else{
}
定义示列
package main
import "fmt"
func iftest() {
score :=61
if score > 60{
fmt.Println("成绩合格")
} else if score >90{
fmt.Println("成绩优秀")
}else if score<0 {
fmt.Println("成绩不能为负数")
}else if score < 60 {
fmt.Println("成绩不合格")
} else{
fmt.Println("成绩不合法")
}
}
func main() {
iftest()
// 输出
成绩合格
}
2、for 循环
go 循环只有一种叫做for
语法结构
for initialisation; condition; post {
}
初始化语句只执行一次。循环初始化后,将检查循环条件。如果条件的计算结果为 true ,则 {} 内的循环体将执行,
接着执行 post 语句。post 语句将在每次成功循环迭代后执行。在执行 post 语句后,条件将被再次检查。
如果为 true, 则循环将继续执行, 否则 for 循环将终止。
示列
package main
import "fmt"
func fortest1() {
for i :=1;i <=10;i++{
fmt.Println(i)
}
}
// 输出
1
2
3
4
5
6
7
8
9
10
//在 go 中 break语句在完成执行之前突然终止for 循环,之后程序将会在for 循环下开始下一行
代码开始执行
for i:=2; i<=20 ;i+=2{
if i >8{
break
}
fmt.Printf("%d",i)
}
fmt.Printf("\nline after for loop")
// 输出 当 i的值大于8后, fmt.Printf("%d",i) ,就终止执行了,执行最后一个fmt.Print
2468
line after for loop
// continue
continue 语句用来跳出 for 循环中当前循环,
在 continue 语句后的所有的 for 循环语句都不会在本次循环中执行。循环体会在一下次循环中继续执行。
for i :=1;i<=10;i++{
if i%2 ==0{
continue
}
fmt.Printf("%d",i)
}
}
// 输出 ,当于为0 的不输出
13579
func main() {
fortest1()
}
// go 的无限循环语句
for {
fmt.Println("Hello World")
}
3、switch 语句
switch 语句用于基于不同条件执行不同动作,每个case 分之都是唯一的,从上至下逐以测试,直到匹配为止
switch 语句的执行过程从上至下,直到找到匹配项,匹配项后面也不需要加break
switch 默认情况下case 最后带break 语句,匹配成功后不会执行其他case,可以使用fallthrough
语法结构如下
switch var1 {
case val1:
...
case val2:
...
default:
...
}
package main
import "fmt"
func switchtest1() {
var scores int = 90
switch scores{
case 90:
fmt.Println("very good score")
fallthrough
case 80:
fmt.Println("good score")
case 60:
fmt.Println("just ok")
}
}
输出 ,当在case 90 条件下新增 fallthrough 时,case 80 的条件也会输出
good score
very good score
func main() {
switchtest1()
}
有疑问加站长微信联系(非本文作者)