15分钟学Go 第7天:控制结构 - 条件语句

server/2024/10/23 14:50:28/

第7天:控制结构 - 条件语句

在Go语言中,控制结构是程序逻辑的重要组成部分。通过条件语句,我们可以根据不同的条件采取不同的行动。今天我们将详细探讨Go语言中的两种主要条件结构:if语句和switch语句。理解这些控制结构对于编写有效、可读的代码至关重要。

1. if 语句

if语句用于根据条件的真假来决定是否执行代码块。它是最常用的条件语句,结构简单直观。

1.1 if 语句的基本结构

if condition {// 当条件为真时执行的代码
}

1.2 if-else 语句

if语句后可以跟一个 else 语句,以便处理条件为假时的情况。

if condition {// 当条件为真时执行的代码
} else {// 当条件为假时执行的代码
}

1.3 if-else if-else 语句

可以使用多个 else if 构造来处理多个条件。

if condition1 {// 当条件1为真时执行的代码
} else if condition2 {// 当条件2为真时执行的代码
} else {// 所有条件均为假时执行的代码
}

1.4 示例代码

让我们看一个简单的示例,根据用户的年龄输出不同的内容。

package mainimport "fmt"func main() {var age intfmt.Print("请输入年龄: ")fmt.Scan(&age)if age < 18 {fmt.Println("未成年")} else if age >= 18 && age < 65 {fmt.Println("成年人")} else {fmt.Println("老年人")}
}

1.5 代码执行流程

Yes
No
Yes
No
开始
用户输入年龄
判断 age < 18
输出: 未成年
判断 age >= 18 && age < 65
输出: 成年人
输出: 老年人
结束

2. switch 语句

switch语句是另一种控制结构,可以在多个条件间进行选择,特别适合于多个可能性相对独立的情况。

2.1 switch 语句的基本结构

switch expression {
case value1:// 当expression等于value1时执行的代码
case value2:// 当expression等于value2时执行的代码
default:// expression不匹配任何case时执行的代码
}

2.2 switch 不需要 break

Go语言的switch语句隐式地在每个case执行完后自动跳出,因此不需要显示设置break

2.3 示例代码

以下是一个简单的例子,根据输入的星期几输出相应的星期名称。

package mainimport "fmt"func main() {var day intfmt.Print("请输入星期几(1-7): ")fmt.Scan(&day)switch day {case 1:fmt.Println("星期一")case 2:fmt.Println("星期二")case 3:fmt.Println("星期三")case 4:fmt.Println("星期四")case 5:fmt.Println("星期五")case 6:fmt.Println("星期六")case 7:fmt.Println("星期天")default:fmt.Println("输入无效,请输入1到7之间的数字")}
}

2.4 代码执行流程

Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
开始
用户输入星期几
判断 day == 1
输出: 星期一
判断 day == 2
输出: 星期二
判断 day == 3
输出: 星期三
判断 day == 4
输出: 星期四
判断 day == 5
输出: 星期五
判断 day == 6
输出: 星期六
判断 day == 7
输出: 星期天
输出: 输入无效
结束

3. switch 的高级用法

3.1 表达式 switch

switch语句的表达式可以是任意类型。

switch day := 5; day {
case 1, 2, 3:fmt.Println("周中的日子")
case 4, 5, 6:fmt.Println("快到周末了")
case 7:fmt.Println("周日")
default:fmt.Println("无效的输入")
}

3.2 基于条件的 switch

switch语句也可以没有表达式,直接使用条件判断。

switch {
case age < 18:fmt.Println("未成年人")
case age < 65:fmt.Println("成年人")
default:fmt.Println("老年人")
}

4. 注意事项

  • if语句经常需要手动管理条件,而switch则简化了多个条件的检查。
  • 在使用switch时,可以避免使用break,这让代码更加简洁。
  • 尽管switch可以处理很多情况,但在条件较少时,简单的if通常更合适。

5. 练习题

  1. 编写一个程序,根据用户输入的分数判断等级(优、良、中、及格、差)。
  2. 创建一个程序使用switch语句来显示输入月份的天数。
  3. 编写一个程序,使用条件判断确定一个数字是奇数还是偶数,并输出相应的信息。

6. 总结

在本章中,我们探讨了Go语言中的条件语句,重点介绍了ifswitch的用法。通过示例和流程图,我们深入理解了如何根据不同条件做出决策,同时也讨论了各种使用场景。掌握这些控制结构将为我们后续的学习打下坚实的基础。

附加资源

  • Go语言官方文档 - 控制结构
  • Go语言学习资源与书籍

怎么样今天的内容还满意吗?再次感谢观众老爷的观看,关注下方GZH,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!
在这里插入图片描述


http://www.ppmy.cn/server/134194.html

相关文章

Java项目:157 基于springboot技术的美食烹饪互动平台的设计与实现(含论文+说明文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本知识管理系统有管理员和用户两个角色 管理员权限操作的功能包括管理美食&#xff0c;对美食留言进行回复&#xff0c;管理美食知识信息&…

windows DLL技术-DLL概述

动态链接库 (DLL) 是一个模块&#xff0c;其中包含可由另一个模块 (应用程序或 DLL) 使用的函数和数据。 DLL 可以定义两种类型的函数&#xff1a;导出函数和内部函数。 导出的函数旨在由其他模块调用&#xff0c;以及从定义它们的 DLL 中调用。 内部函数通常只能从定义内部函…

机器学习4

第3章 线性模型 3.1 线性模型的基本形式 3.1.1 线性模型的核心公式 线性模型通过属性的线性组合进行预测&#xff0c;其核心公式为&#xff1a; [ f(x) \omega_1 X_1 \omega_2 X_2 … \omega_d X_d b ] 其中&#xff1a; ω 1 , ω 2 , . . . , ω d \omega_1, \omega_…

代码随想录 -- 贪心 -- 合并区间

56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 先按照左边界从大到小对数组进行排序&#xff1b; 遍历数组&#xff1a;如果当前遍历的区间左边界小于等于前一个区间的右边界&#xff0c;更新当前区间的左边界为最小的左边界&#xff0c;右边界为最…

【网络协议栈】Tcp协议(上)结构的解析 和 Tcp中的滑动窗口(32位确认序号、32位序号、4位首部长度、6位标记位、16为窗口大小、16位紧急指针)

绪论​ “没有那么多天赋异禀&#xff0c;优秀的人总是努力翻山越岭。”本章主要讲到了再五层网络协议从上到下的第二层传输层中使用非常广泛的Tcp协议他的协议字段结构&#xff0c;通过这些字段去认识其Tcp协议运行的原理底层逻辑和基础。后面将会再写一篇Tcp到底是通过什么调…

API接口的未来展望:构建更加智能、安全、高效的数字世界

一、引言 随着信息技术的飞速发展&#xff0c;应用程序编程接口&#xff08;API&#xff09;已成为现代软件开发的核心组成部分。API作为不同系统之间的桥梁&#xff0c;使得数据、功能和服务能够在各种平台和设备之间无缝流动。在这个数字化时代&#xff0c;API接口的未来展望…

除了 Python,还有哪些语言适合做爬虫?

以下几种语言也适合做爬虫&#xff1a; 一、Java* 优势&#xff1a; 强大的性能和稳定性&#xff1a;Java 运行在 Java 虚拟机&#xff08;JVM&#xff09;上&#xff0c;具有良好的跨平台性和出色的内存管理机制&#xff0c;能够处理大规模的并发请求和数据抓取任务&#x…

工商银行大数据技术及应用白皮书2024

版权说明 本⽩⽪书版权属于中国⼯商银⾏软件开发中⼼, 并受法律保护。转载、 摘编或利⽤其它⽅式使⽤本⽩⽪书⽂字或者观点的,应注明“来源:中国⼯ 商银⾏软件开发中⼼”。违反上述声明者,我们将追究其相关法律责任。 第⼀章 概述