当前位置: 首页 > news >正文

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("很遗憾,没及格。")
}
}
http://www.lryc.cn/news/427433.html

相关文章:

  • 白骑士的C#教学实战项目篇 4.2 图形用户界面(GUI)应用
  • 【Java学习】反射和枚举详解
  • leetcode-461. 汉明距离
  • rpmbuild 将二进制文件 strip,文件 md5 发生改变
  • selenium爬取搜狗网站新闻的小Demo
  • R 语言学习教程,从入门到精通,R CSV 文件使用(17)
  • 【LLM之Base Model】Weaver论文阅读笔记
  • 泰坦尼克号 - 从灾难中学习机器学习/Titanic - Machine Learning from Disaster(kaggle竞赛)第一集(了解赛题)
  • 使用C++调用PyTorch模型的弯弯绕绕,推荐LibTorch加载,C++处理
  • 实现异形(拱形)轮播图
  • 【软件测试】2024年职业院校技能大赛高职组“软件测试”赛项样题
  • python数组和队列
  • Vision Transformer(ViT)一种将Transformer架构应用于计算机视觉领域的模型
  • 得到任务式 大模型应用开发学习方案
  • 使用el-menu跳转时偶尔会出现路由已经变了,但是页面却显示空白的情况
  • C语言家教记录(七)
  • 【数据结构】——十大排序详解分析及对比
  • 散点图适用于什么数据 thinkcell散点图设置不同颜色
  • 1. windows搭建Kafka教程
  • XSS复现
  • 怎么利用XML发送视频彩信
  • 5G+工业互联网产教融合创新实训室解决方案
  • 象棋布局笔记
  • 百度AI智能云依赖库OpenSSL库和Curl库及jsoncpp库安装
  • 智慧空调离线语音控制方案:NRK3301芯片的深度解析与应用
  • 基础第3关:LangGPT结构化提示词编写实践
  • Nginx系列-负载均衡
  • 中职物联网实训室
  • Image-coloring的部署,在Ubuntu22.04系统下——点动科技
  • Springboot 整合 Swagger3(springdoc-openapi)