当前位置: 首页 > 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…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...