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

news/2024/10/22 21:28:13/

第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/news/1541160.html

相关文章

Vue 3中集成Element Plus组件库

文章目录 一、Element Plus简介二、安装Element Plus2.1 安装Element Plus2.2 引入Element Plus三、使用Element Plus组件3.1 创建组件3.2 组件引入四、总结随着前端开发的快速发展,组件库已经成为开发实践中不可或缺的部分。 Vue 3作为一个现代的 JavaScript框架,其灵活性…

双11直播激发消费潜力,抖音电商作者带货成交额同比增长超70%

“双11”大促如火如荼&#xff0c;来自各行各业的抖音电商作者精心选品&#xff0c;为广大消费者带来丰富的优价好物。抖音电商数据显示&#xff0c;10月18日至20日&#xff0c;平台上作者累计带货成交额同比去年提升超70%&#xff0c;超10万名作者带货成交额同比增长300%&…

关于上传 GP aab 包,报错 “Invalid uncompressed glob“ 的解决

之前打包盒上传 aab 包一直没问题&#xff0c;今天突然报错如下&#xff1a; 针对您上传的 App Bundle 运行 bundletool build-apks 时出错。 请在本地运行 bundletool build-apks&#xff0c;确保您的 App Bundle 有效&#xff0c;然后重试。 错误&#xff1a;Invalid uncomp…

数据脱敏方案总结

什么是数据脱敏 数据脱敏的定义 数据脱敏百度百科中是这样定义的&#xff1a; 数据脱敏&#xff0c;指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集…

[图形学]蒙特卡洛积分方法介绍及其方差计算

一、简介 本文介绍了蒙特卡洛积分算法的基本原理和其误差计算。 二、蒙特卡洛积分介绍 1. 介绍 蒙特卡洛积分算法是一种数值积分算法&#xff0c;用于对复杂函数进行积分。 例如&#xff0c;对于目标积分函数&#xff1a; ∫ a b f ( x ) d x (1) \int_{a}^{b}f(x)\rm{d}x…

MongoDB文档的详细使用说明

以下是关于MongoDB文档的详细使用说明&#xff1a; 1. 文档的概念 文档是MongoDB中数据的基本单元&#xff0c;它是一个类似于JSON格式的键值对数据结构&#xff0c;也被称为BSON&#xff08;Binary JSON&#xff09;格式。文档可以包含不同类型的数据字段&#xff0c;并且可…

Android 10.0 Camera2 拍照镜像功能实现

1.前言 在10.0的系统rom定制化开发中,在进行camera2的相关拍照功能开发中,在某些时候会遇到拍照照片 左右镜像的问题,就是照片左半边和右半边是反的,所以就需要在拍照的时候保存图片的时候实现 左右镜像功能,接下来就来分析下拍照保存图片的流程 2.Camera2 拍照镜像功能实…

15分钟学Go 第6天:变量与常量

第6天&#xff1a;变量与常量 在Go语言中&#xff0c;变量和常量是编程的基础概念。理解如何定义和使用它们不仅能帮助我们管理数据&#xff0c;还能增强代码的可读性和可维护性。在本章中&#xff0c;我们将详细探讨Go语言中的变量和常量&#xff0c;涵盖它们的定义、使用、作…