Go语言探索 - 5(原创)

简介: Go语言基础系列博客用到的所有示例代码在上一篇文章 中,主要学习了Go语言的算术运算符、关系运算符 、逻辑运算符 、赋值运算符以及运算符优先级,本篇文章主要学习Go语言的条件判断语句以及循环语句。

Go语言基础系列博客用到的所有示例代码

上一篇文章 中,主要学习了Go语言的算术运算符、关系运算符 、逻辑运算符 、赋值运算符以及运算符优先级,本篇文章主要学习Go语言的条件判断语句以及循环语句。

条件判断语句:

由于if else if这种条件判断语句在很多种语言都有相似性,这里就快速学习下Go语言中的条件判断语句,首先是if语句:

img_f5ba2ff63e264895039fa787885572d4.png
if语句

if语句表达的是 判断语句为true即执行true里面的语句块,否则执行else里面的语句;

if else if  else语句是对 if else 语句的拓展与补充 他可以有多个判断条件,多个判读条件就是基于else if括号里面的条件进行判断:

img_346023a187062cec00516553c4ed6d80.png
else if

但是如果写大量的else if语句 会造成语句拥挤,这个时候可以使用switch语句进行判断:

img_a8c3b1b730378b779dca68ebebe72fb1.png
switch语句

循环语句:

首先是常见的for循环:

img_534eb70612ee8761ebc8fa7ff8bab75f.png
for循环

这种常见的写法就是: for init;condition; post {  }

三个参数:

init: 一般为赋值表达式,给控制变量赋初值;

condition: 关系表达式或逻辑表达式,循环控制条件;

post: 一般为赋值表达式,给控制变量增量或减量。

执行流程:

判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。

嵌套循环:

现在我要输出一个 9*9乘法表,在Go语言中该如何使用?可以参考Java中的写法,写法如下:

img_0cdd90d3f4a593cf5db6376e17426342.png
循环嵌套

那么Go语言中的循环控制语句有以下三种:

break:经常用于中断当前 for 循环或跳出 switch 语句

continue:跳过当前循环的剩余语句,然后继续进行下一轮循环。

goto:将控制转移到被标记的语句。

下面对上面的3种循环控制语句一个个说明使用,

Go 语言中 break 语句用于以下两方面:

A:用于循环语句中跳出循环,并开始执行循环之后的语句。

B:break在switch(开关语句)中在执行一条case后跳出语句的作用。

img_6543eb51965444b0c9d52a316e7e012c.png
break语句

Go 语言的 continue 语句值如何符号条件,不是跳出循环,而是跳过当前循环执行,接着继续执行下一次循环语句。for 循环中,执行 continue 语句会触发for增量语句的执行。如下图:


img_f19fe2ea32c708e562b0e8677892f88d.png
continue

还是沿用break语句的那张图,只是将break改成了continue。如果使用符合逻辑定义的continue语句,那么 这个数组 arrayName[3] 也就是45451跳出了本次循环(也就没有打印45451) 但是后面的条件会继续执行打印数组的值。

Go 语言的 goto 语句可以无条件地转移到过程中指定的行。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。下面我们首先看goto语句的使用:

img_0e52fbf634912fd370e456a3b9d946d4.png
goto语句

下面是goto的一种写法:

img_8c32e5ee821cb328e4f0c5ad87b4ac72.png
goto - 2

本篇文章关于Go语言的条件判断语句以及循环语句的学习基本上就结束了,本章内容客观来说都是相对较基础。

如果这篇文章对你有帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。

相关文章
|
7天前
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
30 0
|
1天前
|
Java Go
一文带你速通go语言指针
Go语言指针入门指南:简述指针用于提升效率,通过地址操作变量。文章作者sharkChili是Java/CSDN专家,维护Java Guide项目。文中介绍指针声明、取值,展示如何通过指针修改变量值及在函数中的应用。通过实例解析如何使用指针优化函数,以实现对原变量的直接修改。作者还邀请读者加入交流群深入探讨,并鼓励关注其公众号“写代码的SharkChili”。
8 0
|
1天前
|
存储 缓存 Java
来聊聊go语言的hashMap
本文介绍了Go语言中的`map`与Java的不同设计思想。作者`sharkChili`是一名Java和Go开发者,同时也是CSDN博客专家及JavaGuide项目的维护者。文章探讨了Go语言`map`的数据结构,包括`count`、`buckets指针`和`bmap`,解释了键值对的存储方式,如何利用内存对齐优化空间使用,并展示了`map`的初始化、插入键值对以及查找数据的源码过程。此外,作者还分享了如何通过汇编查看`map`操作,并鼓励读者深入研究Go的哈希冲突解决和源码。最后,作者提供了一个交流群,供读者讨论相关话题。
9 0
|
2天前
|
Java Go
Go语言学习11-数据初始化
【5月更文挑战第3天】本篇带大家通过内建函数 new 和 make 了解Go语言的数据初始化过程
15 1
Go语言学习11-数据初始化
|
2天前
|
自然语言处理 安全 Java
速通Go语言编译过程
Go语言编译过程详解:从词法分析(生成token)到句法分析(构建语法树),再到语义分析(类型检查、推断、匹配及函数内联)、生成中间码(SSA)和汇编码。最后,通过链接生成可执行文件。作者sharkchili,CSDN Java博客专家,分享技术细节,邀请读者加入交流群。
20 2
|
3天前
|
Java Linux Go
一文带你速通Go语言基础语法
本文是关于Go语言的入门介绍,作者因其简洁高效的特性对Go语言情有独钟。文章首先概述了Go语言的优势,包括快速上手、并发编程简单、设计简洁且功能强大,以及丰富的标准库。接着,文章通过示例展示了如何编写和运行Go代码,包括声明包、导入包和输出语句。此外,还介绍了Go的语法基础,如变量类型(数字、字符串、布尔和复数)、变量赋值、类型转换和默认值。文章还涉及条件分支(if和switch)和循环结构(for)。最后,简要提到了Go函数的定义和多返回值特性,以及一些常见的Go命令。作者计划在后续文章中进一步探讨Go语言的其他方面。
9 0
|
4天前
|
JavaScript 前端开发 Go
Go语言的入门学习
【4月更文挑战第7天】Go语言,通常称为Golang,是由Google设计并开发的一种编程语言,它于2009年公开发布。Go的设计团队主要包括Robert Griesemer、Rob Pike和Ken Thompson,这三位都是计算机科学和软件工程领域的杰出人物。
12 1
|
4天前
|
Go
|
5天前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
133 1
|
5天前
|
算法 关系型数据库 MySQL
Go语言中的分布式ID生成器设计与实现
【5月更文挑战第6天】本文探讨了Go语言在分布式系统中生成全局唯一ID的策略,包括Twitter的Snowflake算法、UUID和MySQL自增ID。Snowflake算法通过时间戳、节点ID和序列号生成ID,Go实现中需处理时间回拨问题。UUID保证全局唯一,但长度较长。MySQL自增ID依赖数据库,可能造成性能瓶颈。选择策略时需考虑业务需求和并发、时间同步等挑战,以确保系统稳定可靠。
112 0