131 lines
2.1 KiB
Markdown
131 lines
2.1 KiB
Markdown
|
|
# 编程 分支模型(条件选择)
|
||
|
|
|
||
|
|
|
||
|
|
## 单分支
|
||
|
|
|
||
|
|
```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("不及格")
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
|
||
|
|
|