Go语言流程控制详情

Go语言流程控制详情

目录

1、流程控制

2、if 语句

3、goto

4、for语句

5、switch

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 语句——请明智地使用它。用 goto 跳转到必须在当前函数内定义的标签。

例如假设这样一个循环:

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

标签名是大小写敏感的。

4、for语句

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

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

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

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

package main import "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 := 1 for ; sum < 1000; {     sum += sum }

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

对,这就是 while 的功能。

sum := 1 for 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 := 10 switch 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 := 6 switch 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 <= 6 The integer was <= 7 The integer was <= 8 default case

到此这篇关于Go语言流程控制详情的文章就介绍到这了,更多相关Go流程控制内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的

    c4d语言设置|c4d汉语设置

    c4d语言设置|c4d汉语设置,,1. c4d汉语设置mac版的C4D是这样的,中文字体是有的,但是是以拼音的形式存在,比如黑体就是ht。中文字体以拼音方式

    电脑宣传语|电脑宣传语言

    电脑宣传语|电脑宣传语言,,1. 电脑宣传语言1.我做好了与你过一辈子的打算,也做好了你随时要走的准备,2.每段青春都会苍老,但我希望记忆里的你

    office语言设置|微软office语言设置

    office语言设置|微软office语言设置,,微软office语言设置一、首先点击桌面左下角“WIN键”。二、弹出选项内点击“所有程序”。三、接着点

    小米设置日语|小米设置日语语言

    小米设置日语|小米设置日语语言,,1. 小米设置日语语言MIUI系统文字目前只支持简体中文、繁体中文、英文、藏文和维吾尔文,不支持日文 2. 小