【Go 基础篇】Go语言分支结构:掌握 if 和 switch,灵活控制程序逻辑

介绍

在编程中,分支结构是一种重要的控制流程,它允许程序根据不同的条件选择不同的执行路径。Go语言提供了两种主要的分支结构:ifswitch,用于在程序中实现条件判断和多重选择。本篇博客将深入探讨Go语言中的ifswitch分支结构,帮助读者更好地理解如何使用这两种结构来控制程序逻辑流程,以及在实际编程中的应用。

if 分支结构

if 分支结构用于执行基于条件的分支逻辑,根据条件的真假决定是否执行特定的代码块。

基本的 if 语句

package mainimport "fmt"func main() {age := 20if age >= 18 {fmt.Println("您已经成年了!")}
}

在上面的例子中,如果 age 大于等于 18,那么就会执行 if 语句中的代码块,输出 “您已经成年了!”。

ifelse 语句

package mainimport "fmt"func main() {score := 85if score >= 90 {fmt.Println("优秀!")} else {fmt.Println("继续努力!")}
}

在上面的例子中,如果 score 大于等于 90,则输出 “优秀!”,否则输出 “继续努力!”。

ifelse ifelse 语句

package mainimport "fmt"func main() {score := 75if score >= 90 {fmt.Println("优秀!")} else if score >= 80 {fmt.Println("良好!")} else if score >= 70 {fmt.Println("中等!")} else {fmt.Println("需要改进!")}
}

在上面的例子中,根据不同的分数范围,输出不同的评价。

switch 分支结构

switch 分支结构用于实现多个条件的选择,根据不同的情况执行相应的代码块。

基本的 switch 语句

package mainimport "fmt"func main() {day := 3switch day {case 1:fmt.Println("星期一")case 2:fmt.Println("星期二")case 3:fmt.Println("星期三")default:fmt.Println("其他")}
}

在上面的例子中,根据 day 的值,选择执行相应的代码块。

switch 表达式

package mainimport "fmt"func main() {score := 85switch {case score >= 90:fmt.Println("优秀!")case score >= 80:fmt.Println("良好!")case score >= 70:fmt.Println("中等!")default:fmt.Println("需要改进!")}
}

在上面的例子中,根据不同的分数范围,输出不同的评价,但不需要比较固定的值。

fallthrough 关键字

package mainimport "fmt"func main() {num := 2switch num {case 1:fmt.Println("数字是 1")case 2:fmt.Println("数字是 2")fallthroughcase 3:fmt.Println("数字是 3")}
}

在上面的例子中,当 num 为 2 时,fallthrough 关键字会使得后续的 case 语句也被执行,即输出 “数字是 2” 和 “数字是 3”。

最佳实践与总结

ifswitch 分支结构是控制程序逻辑流程的重要工具,它们可以根据条件的真假或多个不同的情况,选择不同的代码执行路径。在编写代码时,要根据实际需求选择合适的分支结构,并注意每个分支的顺序,以及是否需要使用 fallthrough 关键字。

当需要对一个条件进行判断时,可以使用 if 分支结构,根据条件的真假来执行不同的代码块。当需要根据多个情况进行选择时,可以使用 switch 分支结构,根据不同的情况来执行相应的代码块。通过合理运用这两种分支结构,可以使代码更加清晰、易读和易于维护。

无论是简单的条件判断还是复杂的多重选择,ifswitch 分支结构都是实现灵活程序逻辑的关键工具。通过学习不同的用法和实例,您将更好地掌握如何使用这两种分支结构来编写出高效、功能完善的Go程序,提升代码质量和可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub: DriftingBlues: 2靶机

kali:192.168.111.111 靶机:192.168.111.207 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.207 80端口的/blog目录为wordpress wpscan收集wordpress用户和爆破密码 wpscan --url http://driftingblues.box/blog -e…

SpringBoot-yml配置文件的使用与优势

目录 一、什么是yml配置文件? 二、如何在SpringBoot中使用yml配置文件? 三、如何在SpringBoot中注入yml配置文件的属性? Value注解 ConfigurationProperties注解 四、yml配置文件与properties配置文件的区别和优势 区别 优势 五、总结…

非凸联合创始人李佐凡受邀出席复旦DSBA项目座谈会

8月17日,非凸科技联合创始人&CTO李佐凡受邀参加复旦管院数据科学与商业分析专业硕士(DS&BA)项目发展座谈会,与学校教授、老师在生源背景、课程教学、职业发展、学生培养和企业合作方面进行深入交流,旨在更好地…

【C++练习】普通方法+利用this 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义一下成员函数

题目 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义成员函数: void set_ len(int l); //设置长度 设置宽度void set_ wid(int w); 获取长度: int get len(); 获取宽度: int get _wid); 显示周长和面积: v…

如何用Python实现从pdf文件精准抓取数据生成数据库!

要从PDF文件中提取数据并生成数据库,你可以使用Python中的一些库和工具来实现。 1、安装必要的库:确保已安装所需的库。除了之前提到的PyPDF2、pdfminer.six和pdftotext之外,你可能还需要其他的库来处理提取的数据和数据库操作。例如&#x…

民族传统文化分享系统uniapp 微信小程序

管理员、用户可通过Android系统手机打开系统,注册登录后可进行管理员后端;首页、个人中心、用户管理、知识分类管理、知识资源管理、用户分享管理、意见反馈、系统管理,用户前端;首页、知识资源、用户分享、我的等。 本系统的使用…

GO-vscode远程开发和调试

本文内容主要包括: 概述: 主要就是把代码放到服务器上然后远程去开发和调试 工具: vscode 远程端: linux 一.安装远程插件 vscode安装Remote - SSH,Remote Explorer,Remote Development&#xff0c…

4.8 C++ Boost 应用JSON解析库

property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML、Json 或者 INFO 格式的数据。 property_tree 可以提供一个轻量级的、灵活的、基于二叉数的通用容器,可以处理包括简单值(如 int、float)和复杂数据结构&#…

C++最易读手撸神经网络两隐藏层(任意Nodes每层)梯度下降230820a

这是史上最简单、清晰,最易读的…… C语言编写的 带正向传播、反向传播(Forward ……和Back Propagation)……任意Nodes数的人工神经元神经网络……。 大一学生、甚至中学生可以读懂。 适合于,没学过高数的程序员……照猫画虎编写人工智能、…

矿井水处理技术离子交换树脂法

矿井水除氟的要求一般是处理后水中的含氟量≤1.0mg/L。氟化物含量高的原水往往呈偏碱性,pH值常大于7.5。利用阴离子交换树脂上的可交换阴离子,去交换水中的氟离子,达到除氟目的。氟离子的选择交换性较大,树脂上的SO42-、Cl-等阴离…

卷积过程详细讲解

1:单通道卷积 以单通道卷积为例,输入为(1,5,5),分别表示1个通道,宽为5,高为5。假设卷积核大小为3x3,padding0,stride1。 卷积过程如下: 相应的卷积核不断…

企微配置回调服务

1、企微配置可信域名 2、企微获取成员userID 3、企微获取用户敏感数据 4、企微配置回调服务 文章目录 一、简介1、概述2、相关文档地址 二、企微配置消息服务器1、配置消息接收参数2、参数解析3、参数拼接规则 三、代码编写—使用已有库1、代码下载2、代码修改3、服务代码编写 …

基于swing的超市信息管理系统java jsp仓库进销存mysql源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于swing的超市信息管理系统 系统有1权限&#xff1…

Linux驱动开发(Day5)

思维导图: 不同设备号文件绑定:

回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图)效果一览基本…

ElasticSearch-集成ik分词器

本文已收录于专栏 《中间件合集》 目录 背景介绍版本选择优势说明集成过程1.下载安装包2.解压安装包3.重启ElasticSearch服务3.1通过ps -ef | grep elastic查看正在启动的es进程号3.2使用kill -9 xxx 杀死进程3.3使用 ./elasticsearch 启动es服务 分词测试细粒度分词方式分词请…

CTFshow 限时活动 红包挑战9 详细题解

CTFshow红包挑战9 题目源码开源了。源码如下&#xff1a; common.php <?phpclass user{public $id;public $username;private $password;public function __toString(){return $this->username;}}class cookie_helper{private $secret "*************"; /…

【Java架构-包管理工具】-Maven私服搭建-Nexus(三)

本文摘要 Maven作为Java后端使用频率非常高的一款依赖管理工具&#xff0c;在此咱们由浅入深&#xff0c;分三篇文章&#xff08;Maven基础、Maven进阶、私服搭建&#xff09;来深入学习Maven&#xff0c;此篇为开篇主要介绍Maven私服搭建-Nexus 文章目录 本文摘要1. Nexus安装…

【multimaster_fkie】多 ros master core 通信库,不配置主从机进行 ros 多机通信

1. 简介 多个 ros 系统之间可以通过配置 ros 主从机实现互相通信&#xff0c;但有的场景每个 ros 系统都需要运行 rosmaster/roscore &#xff0c;这种情况下就需要使用 multimaster_fkie 库来实现 ros 通信。 Github&#xff1a;https://github.com/fkie/multimaster_fkie RO…

本地搭建CFimagehost私人图床【公网远程访问】

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…