广告
返回顶部
首页 > 资讯 > 精选 >Go语言流程控制的示例分析
  • 940
分享到

Go语言流程控制的示例分析

2023-06-29 18:06:56 940人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关Go语言流程控制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、流程控制流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。流程控

这篇文章给大家分享的是有关Go语言流程控制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1、流程控制

流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。

流程控制包含分三大类:条件判断,循环控制和无条件跳转。

2、if 语句

if 也许是各种编程语言中最常见的了,它的语法概括起来就是:

如果满足条件就做某事,否则做另一件事。

Go 里面 if 条件判断语句中不需要括号,如下代码所示:

if x > 10 {    fmt.Println("x is greater than 10")} else {    fmt.Println("x is less than 10")}

Go 的 if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域,只能在该条件逻辑块内,其他地方就不起作用了如下所示:

// 计算获取值 x,然后根据 x 返回的大小,判断是否大于 10。if x := computedValue(); x > 10 {    fmt.Println("x is greater than 10")} else {    fmt.Println("x is less than 10")}//这个地方如果这样调用就编译出错了,因为 x 是条件里面的变量fmt.Println(x)

多个条件的时候如下所示:

if count == 3 {    fmt.Println("The count is equal to 3")} else if count < 3 {    fmt.Println("The count is less than 3")} else {    fmt.Println("The count is greater than 3")}

3、goto

Go 有 goto 语句&mdash;&mdash;请明智地使用它。用 goto 跳转到必须在当前函数内定义的标签。

例如假设这样一个循环:

func myFunc() {i := 0Here: //这行的第一个词,以冒号结束作为标签println(i)i++goto Here //跳转到 Here 去 }

标签名是大小写敏感的。

4、for语句

Go 里面最强大的一个控制逻辑就是 for,它即可以用来循环读取数据,又可以当作 while 来 控制逻辑,还能迭代操作。它的语法如下:

for expression1; expression2; expression3 {    //...}

expression1expression2expression3 都是表达式,其中 expression1 和 expression3 是 变量声明或者函数调用返回值之类的,expression2 是用来条件判断,expression1在循环开始之前调用,expression3 在每轮循环结束之时调用。

一个例子比上面讲那么多更有用,那么我们看看下面的例子吧:

package mainimport "fmt"func main(){    sum := 0;    for index:=0; index < 10 ; index++ {    sum += index}    fmt.Println("sum is equal to ", sum)}// 输出:sum is equal to 45

有些时候需要进行多个赋值操作,由于 Go 里面没有,操作,那么可以使用平行赋值 i, j = i+1, j-1。有些时候如果我们忽略 expression1expression3

如下:

sum := 1for ; sum < 1000; {    sum += sum}

其中;也可以省略,那么就变成如下的代码了,是不是似曾相识?

对,这就是 while 的功能。

sum := 1for sum < 1000 {    sum += sum}

在循环里面有两个关键操作 break 和 continue ,break操作是跳出当前循环,continue是跳过本次循环。当嵌套过深的时候,break 可以配合标签使用,即跳转至标签所指定的位置,

详细参考如下例子:

for index := 10; index > 0; index-- {if index == 5{    break // 或者 continue}    fmt.Println(index)}// break 打印出来 10、9、8、7、6// continue 打印出来 10、9、8、7、6、4、3、2、1

break continue 还可以跟着标号,用来跳到多重循环中的外层循环,for 配合 range 可以用于读取 slice 和 map 的数据:

for k,v:=range map {    fmt.Println("map's key:",k)    fmt.Println("map's val:",v)}

由于 Go 支持“多值返回”, 而对于“声明而未被调用”的变量, 编译器会报错, 在这种情况下,可以使用_来丢弃不需要的返回值 例如:

for _, v := range map{    fmt.Println("map's val:", v)}

5、switch

有些时候你需要写很多的 if-else 来实现一些逻辑处理,这个时候代码看上去就很丑很冗长,而且也不易于以后的维护,这个时候 switch 就能很好的解决这个问题。

它的语法如下:

switch sExpr {    case expr1:        some instructions    case expr2:        some other instructions    case expr3:        some other instructions    default:        other code}

sExpr 和expr1、expr2、expr3 的类型必须一致。Go 的 switch 非常灵活,表达式不必是常量或整数执行的过程从上至下,直到找到匹配项;而如果 switch 没有表达式,它会匹配true。

i := 10switch i {case 1:    fmt.Println("i is equal to 1")case 2, 3, 4:    fmt.Println("i is equal to 2, 3 or 4")case 10:    fmt.Println("i is equal to 10")default:    fmt.Println("All I know is that i is an integer")}

在上面代码中,我们把很多值聚合在了一个 case 里面,同时,Go 里面 switch默认相当于每 个case 最后带有break,匹配成功后不会自动向下执行其他 case,而是跳出整个 switch,但是可以使用 fallthrough强制执行后面的 case 代码。

integer := 6switch integer {case 4:    fmt.Println("The integer was <= 4")case 5:    fmt.Println("The integer was <= 5")case 6:    fmt.Println("The integer was <= 6")case 7:    fmt.Println("The integer was <= 7")case 8:    fmt.Println("The integer was <= 8")default:    fmt.Println("default case")}

上面的程序将输出:

The integer was <= 6The integer was <= 7The integer was <= 8default case

感谢各位的阅读!关于“Go语言流程控制的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Go语言流程控制的示例分析

本文链接: https://www.lsjlt.com/news/326069.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言流程控制的示例分析
    这篇文章给大家分享的是有关Go语言流程控制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、流程控制流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。流程控...
    99+
    2023-06-29
  • javascript流程控制语句集合的示例分析
    这篇文章将为大家详细讲解有关javascript流程控制语句集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、if语句   &...
    99+
    2022-10-19
  • Go语言流程控制语句
    1.条件语句 几个注意点和C#不一样的。 if a < 5 { return 0 } else { return 1 } ① 条件语句不需要使用括号...
    99+
    2022-11-13
  • Go语言流程控制详情
    目录1、流程控制2、if 语句3、goto4、for语句5、switch1、流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。...
    99+
    2022-11-13
  • Go语言结构的示例分析
    这篇文章主要为大家展示了“Go语言结构的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Go语言结构的示例分析”这篇文章吧。当前的调试部分可以使用 go run filename.go 来...
    99+
    2023-06-20
  • Go语言中go程释放操作的示例分析
    小编给大家分享一下Go语言中go程释放操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!go适合做什么go是golang的简称,而golang可以做服务...
    99+
    2023-06-14
  • Go语言流程控制语句是什么
    这篇文章主要讲解了“Go语言流程控制语句是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言流程控制语句是什么”吧!1.条件语句几个注意点和C#不一样的。if a ...
    99+
    2023-07-02
  • Go语言学习otns示例分析
    目录学习过程proto文件visualize/grpc/replay目录下的文件cmd/otns-replay目录下的文件grpc_Service(包含pb)otns_replay(...
    99+
    2023-05-17
    Go语言otns示例 Go otns分析
  • python控制语句的示例分析
    这篇文章主要为大家展示了“python控制语句的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python控制语句的示例分析”这篇文章吧。1、Python为迭代提供了标准的while语句...
    99+
    2023-06-20
  • Java流程控制语句之If选择结构的示例分析
    这篇文章主要介绍Java流程控制语句之If选择结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、选择结构大纲if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构二、if单选择结...
    99+
    2023-06-15
  • python语言中变量与流程的示例分析
    这篇文章主要介绍python语言中变量与流程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!(1)变量变量,就是值可以改变的量。设计变量,就是要考虑:需要使用到什么样的变量、分别有什么作用、变量的初始值是什么...
    99+
    2023-06-19
  • koa之中间件流程控制的示例分析
    这篇文章主要为大家展示了“koa之中间件流程控制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“koa之中间件流程控制的示例分析”这篇文章吧。1. ko...
    99+
    2022-10-19
  • MySQL中流程控制和游标的示例分析
    小编给大家分享一下MySQL中流程控制和游标的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!学习或者了解过编程语言的都知道,任何一门编程语言都不可能只通过一两句语句代码完成。流程控...
    99+
    2022-10-19
  • Go语言使用指针的示例分析
    这篇文章给大家分享的是有关Go语言使用指针的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。普通指针和C语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针...
    99+
    2023-06-20
  • Go语言异常处理的示例分析
    这篇文章主要为大家展示了“Go语言异常处理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Go语言异常处理的示例分析”这篇文章吧。异常处理程序运行时,发生的不被期望的事件,它阻止了程序按...
    99+
    2023-06-20
  • Go语言中通道channel的示例分析
    这篇文章将为大家详细讲解有关Go语言中通道channel的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Go语言通道基础概念1.channel产生背景    线程...
    99+
    2023-06-29
  • Go语言单元测试的示例分析
    小编给大家分享一下Go语言单元测试的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、单元测试分类及其概念1.基本分类测试函数 函数前缀为Test 主要用...
    99+
    2023-06-29
  • Java流程控制之选择结构的示例分析
    这篇文章主要介绍Java流程控制之选择结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!布尔表达式:布尔表达式(Boolean expression)是一段代码声明,它最终只有true(真)和false(假...
    99+
    2023-06-22
  • Java流程控制之顺序结构的示例分析
    这篇文章主要介绍了Java流程控制之顺序结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java中的流程控制语句可以这样分类:顺序结构,选择结构,循环结构。1.关...
    99+
    2023-06-22
  • go语言中的协程实例分析
    这篇文章主要讲解了“go语言中的协程实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“go语言中的协程实例分析”吧!协程的特点该任务的业务代码主动要求切换,即主动让出执行权限发生了IO,...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作