Golang程序的流程控制
Posted sqtce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang程序的流程控制相关的知识,希望对你有一定的参考价值。
流程控制
在程序中,程序运行的流程控制决定程序是如何执行的,主要有三在流程控制语句。
1)顺序控制
2)分支控制
3)循环控制
顺序控制
程序从上到下逐行执行,中间没有任何判断和跳转
顺序控制流程图
Golang中定义变量时采用合法的前向引用如:
func min() {
var i int = 10
var j int = i + 20
fmt.Println(j)
}
分支控制
分支控制就是让程序有选择执行,有三种形式
1,单分支
2,双分支
3,多分支
单分支控制
基本语法
if 条件表达式 {
执行代码块
}
注:当条件表达式为true时,就会执行{}中的代码,{} 必须要有,
代码示例:
package main
import "fmt"
func main() {
var age int
fmt.Println("请输入年龄")
fmt.Scanln(&age)
if age > 18 {
fmt.Println("你已成年!")
}
}
单分支流程控制图
双分支控制
基本语法
if 条件表达式 {
执行代码块1
}else {
执行代码块2
}
注:当条件表达式成立,执行代码块1,否则执行代码块2,{}是必须要有的
代码示例:
package main
import "fmt"
func main() {
var age int
fmt.Println("请输入年龄")
fmt.Scanln(&age)
if age > 18 {
fmt.Println("你已成年!")
} else {
fmt.Println("你是未成年")
}
}
双分支流程图
对双分支的总结
1,从上面程序来看,条件表达式就是 age > 18
2, 执行代码块1 :fmt.Println("你已成年!")
3,执行代码块2:fmt.Println("你是未成年")
4,双分支只会执行其中的一个分支
多分支控制
基本语法
if 条件表达式1 {
执行代码块1
}else if 条件表达式2{
执行代码块2
}
....
else {
执行代码块n
}
多分支的判断流程
先判断条件表达式1是否成立,如果为真,就执行代码块1
如果条件表达式1不成立,就去判断条件表达式2是否成立,如果条件表达式2为真,就执行代码块2
依次类推
如果所有的条件表达式不成立,则执行else的语句块
多分支控制流程图
代码示例:
package main
import "fmt"
func main() {
var score int
fmt.Println("请输入成绩")
fmt.Scanln(&score)
if score >= 90 {
fmt.Println("成绩优秀")
} else if score >=80 && score < 90{
fmt.Println("成绩良好")
}else if score >=60 && score < 80 {
fmt.Println("成绩中等")
}else {
fmt.Println("成绩不及格")
}
}
嵌套分支
基本语法
在一个分支结构中用完整的嵌套了另一个完整的分支结构,里面的分支的结构为内层分支,外面的分支结构称为外层分支
基本语法
if条件表达式{
if条件表达式{
}else{
}
}
注: 嵌套会支不宜过多,建议控制在3层内
代码示例
package main
import "fmt"
func main() {
var second float64
fmt.Println("请输入秒数")
fmt.Scanln(&second)
if second <= 8 {
var gender string
fmt.Println("请输入性别")
fmt.Scanln(&gender)
if gender == "男" {
fmt.Println("进入男子决赛组")
}else {
fmt.Println("进入女子决赛组")
}
} else {
fmt.Println("输入有误")
}
}
以上是关于Golang程序的流程控制的主要内容,如果未能解决你的问题,请参考以下文章