共计 1560 个字符,预计需要花费 4 分钟才能阅读完成。
内容目录
Go的分支结构
Go的分支结构与其它高级语言相似,支持if,if-else,if-else嵌套,switch等,Go在这些基础上,还有一个select语句。
这些语句如下:
语句 | 描述 |
---|---|
if 语句 |
if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |
if...else |
语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |
if 嵌套语句 |
你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。 |
switch 语句 |
switch 语句用于基于不同条件执行不同动作。 |
select 语句 |
select 语句类似于 switch 语句,但是select 会随机执行一个可运行的case 。如果没有case 可运行,它将阻塞,直到有case 可运行。 |
if-else系列
if-else
系列的分支结构是我们最常用的,Go语言中的if-else
的语法如下:
if 条件表达式 {
}else if 条件表达式 {
if 条件表达式 {
}else {
}
}else {
}
看起来可能有点乱,但有编程基础读者一定能够Get到点上的。
案例
用户输入name,若name为Bob,输出Hello,Bob,若为Alice,输入Hi,Alice,否则输出Bye,{name}
package main
import "fmt"
func main() {
var name string
fmt.Scan(&name)
if name == "Bob" {
fmt.Println("Hello," + name)
} else if name == "Alice" {
fmt.Println("Hi," + name)
} else {
fmt.Println("Bye," + name)
}
}
用户输入成绩score,若score>=90,输出A,若在[80,90),输出B,依次类推,分别输出C,D,score < 60,输出E.
package main
import "fmt"
func main() {
var score float32
var outText byte
fmt.Scan(&score)
if score >= 90 {
outText = 'A'
} else if score >= 80 {
outText = 'B'
} else if score >= 70 {
outText = 'C'
} else if score >= 60 {
outText = 'D'
} else {
outText = 'E'
}
fmt.Printf("%.1f转化为等级后为:%c\n", score, outText)
}
switch语句
Go的switch语法规则如下:
switch vari {
case val1:
语句1
case val2:
语句2
...
default:
语句n
}
switch示例如下:
package main
import "fmt"
func main() {
var score int
var msg string
fmt.Scan(&score)
switch score {
case 100:
msg = "满分"
default:
msg = "不是满分"
}
fmt.Println(msg)
}
除了上述这个格式,还有如下格式:
switch {
case 条件1:
语句1
case 条件2:
语句2
case 条件3:
语句3
...
default:
语句n
}
示例如下:
package main
import "fmt"
func main() {
var score int
var msg string
fmt.Scan(&score)
switch {
case score >= 90:
msg = "优秀"
case score >= 80:
msg = "良好"
case score >= 70:
msg = "一般"
case score >= 60:
msg = "较差"
default:
msg = "差"
}
fmt.Println(msg)
}
正文完