Go语言基础--条件判断(if语句)

if语句它允许程序根据一个或多个条件(通常是布尔表达式)的真假来决定执行哪一段代码。如果条件为真(true),则执行if语句块内的代码;如果条件为假(false),则跳过该代码块,继续执行if语句之后的代码(如果有elseelse if部分,则根据条件判断是否执行这些部分)。

1. if单路径(单选择)

|---|------------------------------|
| | if 条件 { |
| | // 条件为真时执行的路径 |
| | fmt.Println("条件为真,执行此路径") |
| | } |

在这个例子中,只有当条件为真时,才会执行大括号{}内的代码块。

2. if..else双路径(双选择)

|---|------------------------------|
| |
| | if 条件 { |
| | // 条件为真时执行的路径 |
| | fmt.Println("条件为真,执行此路径") |
| | } else { |
| | // 条件为假时执行的路径 |
| | fmt.Println("条件为假,执行此路径") |
| | } |

这个结构提供了两种可能性:如果条件为真,则执行第一个代码块;否则,执行else后面的代码块。

3. if多路径(多选择)

在Go中,通过else if可以实现多路径(或多选择)的条件判断。

|---|---------------------------------|
| | if 条件1 { |
| | // 条件1为真时执行的路径 |
| | fmt.Println("条件1为真,执行此路径") |
| | } else if 条件2 { |
| | // 条件1为假且条件2为真时执行的路径 |
| | fmt.Println("条件2为真,执行此路径") |
| | } else { |
| | // 所有条件都为假时执行的路径 |
| | fmt.Println("所有条件都为假,执行此路径") |
| | } |

这个结构允许你根据多个条件来判断应该执行哪个代码块。

4. if嵌套路径(嵌套选择)

嵌套if结构允许在一个ifelse if块内部再放置一个或多个if语句。

|---|--------------------------------------|
| | if 条件1 { |
| | // 条件1为真时执行的路径 |
| | fmt.Println("条件1为真") |
| | if 条件2 { |
| | // 条件1和条件2都为真时执行的嵌套路径 |
| | fmt.Println("条件1和条件2都为真,执行此嵌套路径") |
| | } |
| | } else { |
| | // 条件1为假时执行的路径 |
| | fmt.Println("条件1为假") |
| | } |

在这个例子中,if 条件2是嵌套在if 条件1内部的,只有当条件1为真时,才会检查条件2。如果条件2也为真,则执行其对应的代码块。

案例:

1. 单路径(单选择)

|---|---------------------------------|
| | package main |
| | import ( |
| | "fmt" |
| | ) |
| | func main() { |
| | score := 85 |
| | // 单路径(单选择) |
| | if score >= 60 { |
| | fmt.Println("恭喜你,及格了!") |
| | } |
| | // 注意:这里不会打印"没及格",因为没有else分支 |
| | } |

2. 双路径(双选择)

|---|----------------------------|
| | package main |
| | import ( |
| | "fmt" |
| | ) |
| | func main() { |
| | score := 55 |
| | // 双路径(双选择) |
| | if score >= 60 { |
| | fmt.Println("恭喜你,及格了!") |
| | } else { |
| | fmt.Println("很遗憾,没及格。") |
| | } |
| | } |

3. 多路径(多选择)

|---|----------------------------|
| | package main |
| | import ( |
| | "fmt" |
| | ) |
| | func main() { |
| | score := 78 |
| | // 多路径(多选择) |
| | if score >= 90 { |
| | fmt.Println("优秀!") |
| | } else if score >= 80 { |
| | fmt.Println("良好!") |
| | } else if score >= 60 { |
| | fmt.Println("及格!") |
| | } else { |
| | fmt.Println("不及格。") |
| | } |
| | } |

4. 嵌套路径(嵌套选择)

|---|----------------------------------------------|
| | package main |
| | import ( |
| | "fmt" |
| | ) |
| | func main() { |
| | score := 88 |
| | attendance := true // 假设这是出勤情况,true表示出勤良好 |
| | // 嵌套路径(嵌套选择) |
| | if score >= 60 { |
| | fmt.Println("及格了,接下来检查出勤情况:") |
| | if attendance { |
| | fmt.Println("出勤良好,有资格获得额外加分。") |
| | } else { |
| | fmt.Println("出勤不佳,请注意改善。") |
| | } |
| | } else { |
| | fmt.Println("很遗憾,没及格。") |
| | } |
| | } |

相关推荐
青灯文案12 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_748254887 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.18 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营22 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Narutolxy23 分钟前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
Hello.Reader31 分钟前
全面解析 Golang Gin 框架
开发语言·golang·gin
禁默42 分钟前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
Code哈哈笑1 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习