go20/day04/condition/README.md

131 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# 编程 分支模型(条件选择)
## 单分支
```go
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
} else {
/* 在布尔表达式为 false 时执行 */
}
```
```go
// 单分支
// 判断分数 及格还是不及格
var score int = 59
if score >= 60 {
println("及格")
} else {
println("不及格")
}
```
## 多分支
```go
if 布尔表达式 1 {
/* 在布尔表达式 1 为 true 时执行 */
} else if 布尔表达式 2 {
/* 在布尔表达式 1 为 true 时执行 */
} else if 布尔表达式 n {
/* 在布尔表达式 1 为 true 时执行 */
} else {
/* 以上条件都不满足时执行 */
}
```
```go
score = 85
// 多分支
// 判断分数 优秀 良好 中等 及格 不及格
if score >= 90 {
println("优秀")
} else if score >= 80 {
println("良好")
} else if score >= 70 {
println("中等")
} else if score >= 60 {
println("及格")
} else {
println("不及格")
}
```
## 嵌套
```go
// 身高1.8m以上, 25 ~ 35岁, 男
func (p *Person) Passed() bool {
if p.height > 1.8 {
if p.age > 25 && p.age <= 35 {
if p.gender == "male" {
return true
}
}
}
return false
}
```
## 多分支优化语法(switch case)
多分支模型的优化语法
```go
score = 85
// 多分支
// 判断分数 优秀 良好 中等 及格 不及格
if score >= 90 {
println("优秀")
} else if score >= 80 {
println("良好")
} else if score >= 70 {
println("中等")
} else if score >= 60 {
println("及格")
} else {
println("不及格")
}
```
```go
// switch 多分支 进行重写
switch {
case score >= 90:
println("优秀")
case score >= 80:
println("良好")
case score >= 70:
println("中等")
case score >= 60:
println("及格")
default:
println("不及格")
}
```
## 多分支 并行执行
```go
// switch 多分支 进行重写
switch {
case score >= 90:
println("优秀")
case score >= 80:
println("良好")
fallthrough
case score >= 70:
println("中等")
case score >= 60:
println("及格")
fallthrough
default:
println("不及格")
}
```