Go语言基础--条件判断(if语句)
if语句它允许程序根据一个或多个条件(通常是布尔表达式)的真假来决定执行哪一段代码。如果条件为真(true),则执行if语句块内的代码;如果条件为假(false),则跳过该代码块,继续执行if语句之后的代码(如果有else或else 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结构允许在一个if或else 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("很遗憾,没及格。") | |
} | |
} |
相关文章:
Go语言基础--条件判断(if语句)
if语句它允许程序根据一个或多个条件(通常是布尔表达式)的真假来决定执行哪一段代码。如果条件为真(true),则执行if语句块内的代码;如果条件为假(false),则跳过该代码块&…...
白骑士的C#教学实战项目篇 4.2 图形用户界面(GUI)应用
系列目录 上一篇:白骑士的C#教学实战项目篇 4.1 控制台应用程序 在这一部分,我们将从简单的控制台应用程序过渡到图形用户界面(GUI)应用程序。GUI 应用程序更加直观和用户友好,是现代软件开发的核心内容。我们将介绍如…...
【Java学习】反射和枚举详解
所属专栏:Java学习 🍁1. 反射 在程序运行时,可以动态地创建对象、调用方法、访问和修改字段,以及获取类的各种属性信息(如成员变量、方法、构造函数等),这种机制就称为反射 反射相关的类 类名用…...
leetcode-461. 汉明距离
题目描述 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 示例 1: 输入:x 1, y 4 输出:2 解释: 1 (0 0 0 1) 4 (0 1 0 0) …...
rpmbuild 将二进制文件 strip,文件 md5 发生改变
rpmbuild 将二进制文件 strip,文件 md5 发生改变 上一篇中提到 strip 相关的操作,会去掉文件中的调试信息【strip 、objdump、objcopy 差异与区别】 在编译或打包环境中,莫名其妙的文件 大小 md5 都发生了改变,怀疑跟 rpmbuild 打…...
selenium爬取搜狗网站新闻的小Demo
使用之前请确保自己chrome浏览的版本与chromedriver的版本一致, Mac确保chromedriver已经放到python的bin目录中 Windows确保chromedriver已经放到python.exe同目录中 当前selenium Version: 3.141.0,4版本后面改为:find_element(By.CLASS_NA…...
R 语言学习教程,从入门到精通,R CSV 文件使用(17)
1、R CSV 文件 R 作为统计学专业工具,如果只能人工的导入和导出数据将使其功能变得没有意义,所以 R 支持批量的从主流的表格存储格式文件(例如 CSV、Excel、XML 等)中获取数据。 1.1、CSV 表格交互 CSV(Comma-Separ…...
【LLM之Base Model】Weaver论文阅读笔记
研究背景 当前的大型语言模型(LLM)如GPT-4等,尽管在普通文本生成中表现出色,但在创造性写作如小说、社交媒体内容等方面,往往不能很好地模仿人类的写作风格。这些模型在训练和对齐阶段,往往使用的是大规模…...
泰坦尼克号 - 从灾难中学习机器学习/Titanic - Machine Learning from Disaster(kaggle竞赛)第一集(了解赛题)
此次目的: hello大家好,俺是没事爱瞎捣鼓又分享欲爆棚的叶同学!!!准备出几期博客来记录我学习kaggle数据科学入门竞赛的过程,顺便也将其中所学习到的知识分享出来。这是第一集(了解赛题&#x…...
使用C++调用PyTorch模型的弯弯绕绕,推荐LibTorch加载,C++处理
需求:使用C调用Pytorch模型,对处理后的图像进行预测。 第一种,使用C调用Python代码处理,使用pybind11源代码再末尾 缺点,导入Python包非常麻烦,执行的C程序找不到cv2 torch包等等 本人解决了cv2 numpy等包&…...
实现异形(拱形)轮播图
项目需要实现如上图所示的轮播图。 实现思路: 1.项目引入使用普通轮播图。 2.根据轮播图个数,动态给可视范围的第一个轮播图和最后一个轮播图添加样式。 代码实现: 经调研,使用slick轮播图(官网地址 https://kenwheel…...
【软件测试】2024年职业院校技能大赛高职组“软件测试”赛项样题
目录 任务一:功能测试(45 分) 任务二:自动化测试(15 分) 任务三:性能测试(15 分) 任务四:单元测试(10 分) 任务五:接…...
python数组和队列
一、数组 如果一个列表只包含数值,那么使用array.array会更加高效,数组不仅支持所有可变序列操作(.pop、.insert、.extent等),而且还支持快速加载项和保存项的方法(.fromfile、.tofile等) 创建…...
Vision Transformer(ViT)一种将Transformer架构应用于计算机视觉领域的模型
Vision Transformer(ViT)是一种将Transformer架构应用于计算机视觉领域的模型,它通过自注意力机制处理图像数据,与传统的卷积神经网络(CNN)相比,ViT能够更好地捕捉全局依赖关系。以下是对ViT的详…...
得到任务式 大模型应用开发学习方案
根据您提供的文档内容以及您制定的大模型应用开发学习方案,我们可以进一步细化任务式学习的计划方案。以下是具体的任务式学习方案: 任务设计 初级任务 大模型概述:阅读相关资料,总结大模型的概念、发展历程和应用领域。深度学…...
使用el-menu跳转时偶尔会出现路由已经变了,但是页面却显示空白的情况
刚开始我以为是我数据加载的问题,后来又看有人说是template里不能包多个div,但我去看我出错的组件,并没有出现两个div。 后来我就把每个都给改了,即使是elemen-ui的标签也全部改在一个div里,就发现没问题了。 我改的…...
C语言家教记录(七)
C语言家教记录(七) 导语字符串字面量变量读写字符串操作函数惯用法数组 结构联合枚举总结与复习 导语 本次授课的内容如下:字符串,结构体、联合体、枚举 辅助教材为 《C语言程序设计现代方法(第2版)》 字…...
【数据结构】——十大排序详解分析及对比
【数据结构】——十大排序详解分析及对比 文章目录 【数据结构】——十大排序详解分析及对比前言1. 排序的概念及其运用1.1 排序的概念1.2 排序的应用 2. 插入排序2.1 直接插入排序2.2 希尔排序 3. 选择排序3.1 选择排序3.2 堆排序 4 交换排序4.1 冒泡排序4.2 快速排序4.2.1 霍…...
散点图适用于什么数据 thinkcell散点图设置不同颜色
在数据可视化的众多工具和技巧中,散点图是一种极为有效的方式,能够揭示变量之间的关系,尤其是在探索数据集的相关性、分布趋势、集群现象时。而在众多助力于制作高质量散点图的工具中,think-cell插件以其高效的操作和丰富的功能&a…...
1. windows搭建Kafka教程
目录 1. 部署zookeeper 1.1 下载地址 1.3 修改zoo配置 1.4 启动zookeepe服务 02 部署kafka 2.1 下载组件包 2.2 解压安装包 2.3 修改配置 2.4 启动kafka服务端 1. 部署zookeeper 1.1 下载地址 下载地址: kafka/zookeeper 下载地址 (qq.com) 1.2 解压 (…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
