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

news2024/10/23 13:30:46

第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 main

import "fmt"

func main() {
    var age int
    fmt.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 main

import "fmt"

func main() {
    var day int
    fmt.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.coloradmin.cn/o/2221613.html

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

相关文章

复写零--双指针

一&#xff1a;题目描述 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理分析 三&#xff1a;代码编写 void duplicateZeros3(vector<int>& arr) {int dest -1, cur 0, n arr.size();//1.找到要复写的最后一个数字while …

qiankun 应用之间数据传递

qiankun 应用之间数据传递 全局共享 initGlobalState qiankun initGlobalState API 单击前往 qiankun 内部提供了 initGlobalState 方法用于注册 MicroAppStateActions 实例用于通信&#xff0c;该实例有三个方法&#xff0c;分别是onGlobalStateChange、setGlobalState、of…

微软宣布了新的“智能代理”功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Elasticsearch:Redact(编辑) processor

Redact 处理器使用 Grok 规则引擎来隐藏输入文档中与给定 Grok 模式匹配的文本。该处理器可用于隐藏个人身份信息 (Personal Identifying Information - PII)&#xff0c;方法是将其配置为检测已知模式&#xff0c;例如电子邮件或 IP 地址。与 Grok 模式匹配的文本将被替换为可…

SpringBoot实现微信支付接口调用及回调函数(商户参数获取)

#1024程序员节 | 征文 # 一、具体业务流程 1. 用户下单 - 前端操作&#xff1a; - 用户在应用中选择商品、填写订单信息&#xff08;如地址、联系方式等&#xff09;&#xff0c;并点击“下单”按钮。 - 前端将订单信息&#xff08;商品ID、数量、价格等&#xff09;发送…

深度学习的一些数学基础

数学基础 万丈高楼平地起 怎么说呢&#xff0c;学的数二对于这些东西还是太陌生了&#xff0c;而且当时学的只会做题&#xff0c;不知道怎么使用/(ㄒoㄒ)/~~ 所以记下来一些不太清楚的前置知识点&#xff0c;主要来自《艾伯特深度学习》&#xff0c;书中内容很多&#xff0c…

动手学深度学习9.6. 编码器-解码器架构-笔记练习(PyTorch)

本节课程地址&#xff1a;61 编码器-解码器架构【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;9.6. 编码器-解码器架构 — 动手学深度学习 2.0.0 documentation (d2l.ai) 本节开源代码&#xff1a;...>d2l-zh>pytorch>chapter_multilayer-percep…

cnn_lstm_kan模型创新实现股票预测

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 A002-cnn_lstm_kan模型创新实现股票预测项目旨在通过结合卷积神经网络&#xff08;CNN&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;以及知识注意网络&#…

Java项目实战II基于微信小程序UNIAPP+SSM+MySQL的电子点餐系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今快节…

华为配置 之 Console线路配置

目录 简介&#xff1a; 知识点&#xff1a; 配置Console线路密码 1.密码认证模式 2.AAA认证模式 知识点&#xff1a; 总结&#xff1a; 简介&#xff1a; 使用PC模拟器与路由器相连&#xff08;与交换机相连原理一样&#xff09;&#xff0c;在关机状态下&#xff0c;使用…

【CS常见问题】你用的是VS2019,最高支持.NET5.0,但是项目将.NET6.0设为目标无法运行,怎么办?

.NET版本问题 报错示例报错分析最简单的方法步骤 报错示例 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 NETSDK1045 当前 .NET SDK 不支持将 .NET 6.0 设置为目标。请将 .NET 5.0 或更低版本设置为目标&#xff0c;或使用支持 .NET 6.0 的 .NET SDK 版本。 ABFview C:\x…

Request2:Post请求和Json

百度翻译拿到自己想看的数据&#xff0c;下图查看请求到数据的请求 preview提前看下 取出对应的RequestUrl &#xff0c;看出来要使用的话得用post请求 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests import json if __name__ "__main__":#1.指定…

『 Linux 』HTTPS

文章目录 HTTPS协议密钥加密的原因加密方式数据指纹网络通信加密方案及短板CA认证CA证书的细节以及如何保证服务端公钥的安全性和数据完整性 CA认证后对称加密与非对称加密配合使用的安全性中间人的攻击方式 HTTPS协议 HTTPS协议并不是一个独立的协议,其是一种以HTTP协议为基础…

武汉融资融券开户佣金最低是多少?哪家证券交易两融利率最低?

编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; 目前两融开户利率是在4%—5%&#xff0c;每个人的融资融券利率都是不一样的。低利率是需要提前联系证券公司的工作人员协助您进行开户&#xff0c;工作人员会根据您的个人需求向与您商谈利率的优惠策略。投资者…

Excel常用操作培训

1 Excel基本操作 1.1 常用快捷键 1.1.1快捷键操作工作簿、工作表 1.1.2快捷键操作 1.1.3单元格操作 1.1.4输入操作 2.1 常见功能描述 2.1.1 窗口功能栏 excel有很多功能可以用&#xff0c;新建文档后&#xff0c;可以最上方&#xff0c;可以看到所有的功能栏目 2.1.2 剪切板…

Unity中使用UnityEvent遇到Bug

UnityEvent绑定过程中&#xff0c;放在Start&#xff08;&#xff09;中绑定会报错&#xff08;通过脚本添加UnityEvent事件脚本&#xff0c;绑定&#xff09; 绑定事件放在OnEnable&#xff08;&#xff09;中不会报错&#xff0c;但是依然不可以立刻添加UnityEvent事件脚本紧…

一些小概念和实战有用的知识

------------------------- IDEA是热保存&#xff0c;能一直crtlz撤销的&#xff0c;除非已经代码入库了&#xff0c;入库也能看到git上该文件历史记录/本地历史记录(看以前自己改了什么) -------------------------- 引用bean时候最好写明一下名字&#xff0c;防止以后有多…

双十一期间有哪些入手不亏的数码好物?这五款优质产品不容错过!

在这个令人期待的双十一购物狂欢节期间&#xff0c;我们总希望能以最实惠的方式&#xff0c;入手那些能够提升生活品质的数码好物。但是还有一些人还在犹豫考虑&#xff0c;不知道入手什么产品比较好&#xff0c;我也是特地挑选了五款实用又富有创意的数码产品&#xff0c;希望…

通过AI检测越权漏洞的指令

通过AI检测越权漏洞的指令 这段指令描述了一个AI的功能和工作流程&#xff0c;主要是用于比较两个HTTP响应数据包&#xff0c;以检测潜在的越权行为。以下是对其内容的详细介绍&#xff1a; 效果 先看一个简单的示例效果&#xff1a; 指令详情 指令详情&#xff1a; {&q…

快速上手C语言【下】(非常详细!!!)

目录 1. 指针 1.1 指针是什么 1.2 指针类型 1.2.1 指针-整数 1.2.2 指针解引用 1.3 const修饰 1.4 字符指针 1.5 指针-指针 1.6 二级指针 2. 数组 2.1 定义和初始化 2.2 下标引用操作符[ ] 2.3 二维数组 2.4 终极测试 3. 函数 3.1 声明和定义 3.2 传值调用…