当前位置: 首页 > news >正文

深入了解 Golang 条件语句:if、else、else if 和嵌套 if 的实用示例

条件语句

用于根据不同的条件执行不同的操作。Go中的条件可以是真或假。Go支持数学中常见的比较运算符:

小于 <

小于等于 <=

大于 >

大于等于 >=

等于 ==

不等于 !=

此外,Go还支持常见的逻辑运算符:

逻辑与 && 逻辑或 || 逻辑非 ! 您可以使用这些运算符或它们的组合来创建不同决策的条件。

示例

尝试一下 x > y x != y (x > y) && (y > z) (x == y) || z

Go具有以下条件语句:

  • 使用if来指定在指定条件为真时执行的代码块
  • 使用else来指定在相同条件为假时执行的代码块
  • 使用else if来指定要测试的新条件,如果第一个条件为假
  • 使用switch来指定要执行的多个备选代码块

if语句

使用if语句来指定在条件为真时执行的一段Go代码。

语法

if 条件 {// 如果条件为真,则执行的代码
}

请注意,if关键字要小写。大写字母(IfIF)会导致错误。

在下面的示例中,我们测试了两个值,以确定20是否大于18。如果条件为真,则打印一些文本:

示例

package main
import ("fmt")func main() {if 20 > 18 {fmt.Println("20 大于 18")}
}

我们也可以测试变量:

示例

package main
import ("fmt")func main() {x := 20y := 18if x > y {fmt.Println("x 大于 y")}
}

示例解释

在上面的示例中,我们使用了两个变量xy,测试x是否大于y(使用>运算符)。由于x为20,y为18,我们知道20大于18,所以我们打印出"x 大于 y"。

else语句

使用else语句来指定在条件为假时执行的一段代码。

语法

if 条件 {// 如果条件为真,则执行的代码
} else {// 如果条件为假,则执行的代码
}

使用if else语句的示例:

示例

在此示例中,时间(20)大于18,因此if条件为假。因此,我们转而执行else条件,并在屏幕上打印"晚上好"。如果时间小于18,程序将打印"白天好":

package main
import ("fmt")func main() {时间 := 20if 时间 < 18 {fmt.Println("白天好。")} else {fmt.Println("晚上好。")}
}

示例

在此示例中,温度为14,因此if的条件为假,因此执行else语句中的代码行:

package main
import ("fmt")func main() {温度 := 14if 温度 > 15 {fmt.Println("外面温暖。")} else {fmt.Println("外面寒冷。")}
}

else语句中的括号应该像} else {这样写:

示例

else的括号放在不同的行会引发错误:

package main
import ("fmt")func main() {温度 := 14if 温度 > 15 {fmt.Println("外面温暖。")} // 这将引发错误else {fmt.Println("外面寒冷。")}
}

结果:

./prog.go:9:3: 语法错误:意外的 else,期望 }

else if 语句

使用 else if 语句在第一个条件为假时指定新条件。

语法:

if 条件1 {// 如果条件1为真时执行的代码
} else if 条件2 {// 如果条件1为假且条件2为真时执行的代码
} else {// 如果条件1和条件2都为假时执行的代码
}

使用 else if 语句的示例:

package mainimport ("fmt"
)func main() {time := 22if time < 10 {fmt.Println("早上好。")} else if time < 20 {fmt.Println("白天好。")} else {fmt.Println("晚上好。")}
}

结果:

晚上好。

示例解释:

在上面的示例中,时间(22)大于10,因此第一个条件为假。接下来,在 else if 语句中的下一个条件也为假,因此我们转向 else 条件,因为条件1和条件2都为假,所以输出屏幕上显示 “晚上好”。

但是,如果时间为14,我们的程序将打印 “白天好”。

另一个 else if 的示例:

package mainimport ("fmt"
)func main() {a := 14b := 14if a < b {fmt.Println("a 小于 b。")} else if a > b {fmt.Println("a 大于 b。")} else {fmt.Println("a 和 b 相等。")}
}

结果:

a 和 b 相等。

注意:

如果条件1和条件2都为真,则仅执行条件1的代码。

嵌套的 if 语句

您可以在 if 语句内部使用 if 语句,这称为嵌套的 if

语法:

if 条件1 {// 如果条件1为真时执行的代码if 条件2 {// 如果条件1和条件2都为真时执行的代码}
} else {// 如果条件1为假时执行的代码
}

嵌套 if 语句的示例:

package mainimport ("fmt"
)func main() {num := 20if num >= 10 {fmt.Println("Num 大于等于 10。")if num > 15 {fmt.Println("Num 也大于 15。")}} else {fmt.Println("Num 小于 10。")}
}

结果:

Num 大于等于 10。
Num 也大于 15。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 **点赞、收藏、关注**

相关文章:

深入了解 Golang 条件语句:if、else、else if 和嵌套 if 的实用示例

条件语句 用于根据不同的条件执行不同的操作。Go中的条件可以是真或假。Go支持数学中常见的比较运算符&#xff1a; 小于 < 小于等于 < 大于 > 大于等于 > 等于 不等于 ! 此外&#xff0c;Go还支持常见的逻辑运算符&#xff1a; 逻辑与 && 逻辑或…...

大数据和机器学习在气象预报中的应用-张平文院士

报告链接&#xff1a;张平文院士 -- 大数据和机器学习在气象预报中的应用_哔哩哔哩_bilibili...

C#高级:Winform桌面开发中DataGridView的详解

一、每条数据增加一个按钮&#xff0c;点击输出对应实体 请先确保正确添加实体的名称和文本&#xff1a; private void button6_Click(object sender, EventArgs e) {//SQL查询到数据&#xff0c;存于list中List<InforMessage> list bll.QueryInforMessage();//含有字段…...

java八股文复习-----2024/03/05----基础---反射,动态代理。序列化

来源一 大彬八股文 来源二 2023 20W字八股文 2024秋招八股文 1.Java创建对象有几种方式&#xff1f; Java创建对象有以下几种方式&#xff1a; 用new语句创建对象。使用反射&#xff0c;使用Class.newInstance()创建对象。调用对象的clone()方法。运用反序列化手段&#x…...

【人工智能】Anthropic发布强大的Claude3对齐GPT-4,大模型杂谈个人感想

北京时间3月5日&#xff0c;人工智能创业公司Anthropic宣布&#xff0c;推出其突破性的Claude 3系列模型。Claude 3系列包含三个子模型&#xff0c;分别为Claude 3 Haiku、Claude 3 Sonnet和Claude 3 Opus&#xff0c;它们提供不同程度的智能、速度和成本选择&#xff0c;以满足…...

基于openKylin与RISC-V的MindSpore AI项目实践

项目目标&#xff1a; 在openKylin系统上安装和配置MindSpore框架。开发一个简单的图像分类模型&#xff0c;并在RISC-V平台上进行训练和推理。根据RISC-V的特性&#xff0c;对MindSpore框架进行必要的优化。 目录 项目目标&#xff1a; 训练模型 编写训练代码&#xff0c;设…...

【牛客】VL64 时钟切换

描述 题目描述&#xff1a; 存在两个同步的倍频时钟clk0 clk1,已知clk0是clk1的二倍频&#xff0c;现在要设计一个切换电路&#xff0c;sel选择时候进行切换&#xff0c;要求没有毛刺。 信号示意图&#xff1a; 波形示意图&#xff1a; 输入描述&#xff1a; clk0 clk1为时…...

Java设计模式——桥连模式

桥接模式简单来说就是通过将抽象部分和具体部分分离&#xff0c;使它们可以独立地变化。如果你的一个类存在多个变化维度&#xff08;如抽象和具体的实现&#xff09;。若使用继承来处理这些变化&#xff0c;将会导致类层次结构的急剧增加&#xff0c;难以管理和维护。并且&…...

数据结构与算法:堆排序和TOP-K问题

朋友们大家好&#xff0c;本节内容来到堆的应用&#xff1a;堆排序和topk问题 堆排序 1.堆排序的实现1.1排序 2.TOP-K问题3.向上调整建堆与向下调整建堆3.1对比两种方法的时间复杂度 我们在c语言中已经见到过几种排序&#xff0c;冒泡排序&#xff0c;快速排序&#xff08;qsor…...

【NR 定位】3GPP NR Positioning 5G定位标准解读(三)

目录 前言 5 NG-RAN UE定位架构 5.1 架构 5.2 UE定位操作 5.3 NG-RAN定位操作 5.3.1 通用NG-RAN定位操作 5.3.2 OTDOA定位支持 5.3.3 广播辅助信息支持 5.3.4 NR RAT相关定位支持 5.4 NG-RAN中与UE定位相关的元素功能描述 5.4.1 用户设备&#xff08;UE&#xff09; …...

文件操作与IO(3) 文件内容的读写——数据流

目录 一、流的概念 二、字节流代码演示 1、InputStream read方法 第一个没有参数的版本&#xff1a; 第二个带有byte数组的版本&#xff1a; 第三个版本 搭配Scanner的使用 2、OutputStream write方法 第一个版本&#xff1a; 第二个写入整个数组版本&#xff1a; …...

《PyTorch深度学习实践》第十一讲卷积神经网络进阶

一、 1、卷积核超参数选择困难&#xff0c;自动找到卷积的最佳组合。 2、1x1卷积核&#xff0c;不同通道的信息融合。使用1x1卷积核虽然参数量增加了&#xff0c;但是能够显著的降低计算量(operations) 3、Inception Moudel由4个分支组成&#xff0c;要分清哪些是在Init里定义…...

Ansible的playbook的编写和解析

目录 什么是playbook Ansible 的脚本 --- playbook 剧本 实例部署&#xff08;使用playbook安装启动httpd服务&#xff09; 1.编写一个.yaml文件 在主机下载安装http&#xff0c;将配置文件复制到opt目录下 运行playbook 在192.168.17.77主机上查看httpd服务是否成功开启…...

[环境配置]ssh连接报错“kex_exchange_identification: read: Connection reset by peer”

已经被VScode ssh毒死好几次了&#xff0c;都是执行命令意外中断&#xff0c;然后又VSCode里连不上、本机Terminal也连不上了。。。 重启远程服务器&#xff0c;VSCode可以连上了&#xff0c; 系统ssh还是不行&#xff0c;报错“kex_exchange_identification: read: Connecti…...

Mybatis-Plus——04,自动填充时间(新注解)

自动填充&#xff08;新注解&#xff09; 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…...

【动态规划入门】最长上升子序列

每日一道算法题之最长上升子序列 一、题目描述二、思路三、C代码 一、题目描述 题目来源:LeetCode 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 输入格式 第一行包含整数 N。 第二行包含 N个整数&#xff0c;表示完整序列。 输出格式 输出一个整数…...

LabVIEW眼结膜微血管采集管理系统

LabVIEW眼结膜微血管采集管理系统 开发一套基于LabVIEW的全自动眼结膜微血管采集管理系统&#xff0c;以提高眼结膜微血管临床研究的效率。系统集成了自动化图像采集、图像质量优化和规范化数据管理等功能&#xff0c;有效缩短了图像采集时间&#xff0c;提高了图像质量&#…...

通过GitHub探索Python爬虫技术

1.检索爬取内容案例。 2.找到最近更新的。(最新一般都可以直接运行) 3.选择适合自己的项目&#xff0c;目前测试下面画红圈的是可行的。 4.方便大家查看就把代码粘贴出来了。 #图中画圈一代码 import requests import os import rewhile True:music_id input("请输入歌曲…...

【Python】-----基础知识

注释 定义&#xff1a;让计算机跳过这个代码执行用三个单引号/双引号都表示注释信息&#xff0c;在Python中单引号与双引号没有区别&#xff0c;但必须是成对出现 输出与输入 程序是有开始&#xff0c;有结束的&#xff0c;程序运行规则&#xff1a;从上而下&#xff0c;由内…...

如何学习、上手点云算法(二):点云处理相关开源算法库、软件、工具

写在前面 本文内容 一些用于点云处理的开源算法库、软件介绍&#xff0c;主要包含&#xff1a; CloudCompare, MeshLab, PCL, Open3D, VTK, CGAL等 不定时更新 平台/环境 Windows10, Ubuntu1804, CMake, Open3D, PCL 转载请注明出处&#xff1a; https://blog.csdn.net/qq_41…...

5分钟快速上手!网易云无损音乐下载完整指南:免费获取高品质音乐

5分钟快速上手&#xff01;网易云无损音乐下载完整指南&#xff1a;免费获取高品质音乐 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 想要免费获取网易云音乐的无损音质歌曲吗&#xff1f;Netease_url项目让你…...

如何快速掌握DeepL翻译插件:浏览器跨语言阅读的终极解决方案

如何快速掌握DeepL翻译插件&#xff1a;浏览器跨语言阅读的终极解决方案 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension DeepL翻译插件是一款基于DeepL API的高质量…...

对比使用Taotoken前后在模型API费用支出上的月度观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比使用Taotoken前后在模型API费用支出上的月度观察 作为一名个人开发者&#xff0c;我日常的开发工作离不开大语言模型的辅助&am…...

别再只会画矩形了!用Leaflet+L.geoJSON搞定复杂行政区遮罩(含飞地处理)

突破Leaflet遮罩技术瓶颈&#xff1a;复杂行政区与飞地处理的终极方案 当我们面对真实世界中的行政区划数据时&#xff0c;理想化的矩形遮罩显得力不从心。中国行政区划的复杂性——飞地、嵌套洞、不规则边界——要求开发者掌握更高级的地图遮罩技术。本文将带您深入Leaflet的L…...

算法高频难题——链表环检测(快慢指针核心实现)

链表操作是算法面试的重中之重&#xff0c;而“检测链表中是否存在环”更是高频考题&#xff0c;字节、阿里等大厂面试中多次出现&#xff0c;热度稳居算法类难题TOP3。很多开发者会陷入“遍历存节点”的误区&#xff0c;导致空间复杂度过高&#xff0c;无法通过面试优化要求。…...

PUBG罗技鼠标宏终极指南:从零配置到实战压枪的完整教程

PUBG罗技鼠标宏终极指南&#xff1a;从零配置到实战压枪的完整教程 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这样的竞技射击…...

Robo 3T:原生跨平台MongoDB管理工具的架构解析与技术实践

Robo 3T&#xff1a;原生跨平台MongoDB管理工具的架构解析与技术实践 【免费下载链接】robomongo Native cross-platform MongoDB management tool 项目地址: https://gitcode.com/gh_mirrors/ro/robomongo Robo 3T作为一款原生跨平台的MongoDB管理工具&#xff0c;为开…...

如何快速清理Windows驱动垃圾:DriverStore Explorer终极使用指南

如何快速清理Windows驱动垃圾&#xff1a;DriverStore Explorer终极使用指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你的C盘空间是不是总在不知不觉中变小&#xff1f;系统运行…...

02. 基本类型

02. 基本类型 1. 概述 TypeScript 的核心特性是静态类型系统。基本类型是 TypeScript 类型系统的基础&#xff0c;包括 JavaScript 原有的原始类型和 TypeScript 新增的特殊类型。 // TypeScript 类型系统概览 ┌──────────────────────────────…...

如何快速在Windows上安装安卓应用?APK Installer的终极免费解决方案

如何快速在Windows上安装安卓应用&#xff1f;APK Installer的终极免费解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想在Windows电脑上运行安卓应用…...