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地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。

相关文章
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
171 1
|
4月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
289 1
|
10月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
10月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
4月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
376 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
241 0
|
4月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
218 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
312 0
|
4月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
4月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。