首页 > 服务端语言 > Go 入门教程 > 20 Go 语言的循环语句

Go 语言的循环语句

在 Go 语言中减少了循环语句的关键字,仅有一个 for 关键字。但是并没有减少其功能,而且它更是兼容了其它语言中的 while 关键字的用法,甚至更强大。

1. for 循环语句

1.1 普通用法

在 Go 语言中,for 循环之后一样可以跟三个语句, 单次表达式;条件表达式;末尾循环体 ,但是它不需要使用()来包裹这三个表达式,写法上更加的简洁。同时它也和其它语言一样,可以任意省略这三个表达式。

代码示例:

package main

import "fmt"

func main() {
    for a := 0; a < 10; a++ {
        fmt.Println(a)
    }
}

省略 单次表达式 代码示例:

package main

import "fmt"

func main() {
    a := 0
    for ; a < 10; a++ {//表达式可以省略,但是;不能省略
        fmt.Println(a)
    }
}

执行结果

图片描述

1.2 代替 while 的用法

在其它大部分语言中 for 循环中省略 单次表达式末尾循环体 其实就和其它语句中的 while 用法一致了。所以在 Go 语言中,直接使用省去 单次表达式末尾循环体for 循环语句来代替 while 的用法,为了简便代码书写,Go 语言中 for 循环语句在省去 单次表达式末尾循环体 时,可以不写分号。

代码示例

package main

import "fmt"

func main() {
    a := 0
    for a < 10 { //和其它语言中的while(a<10)一致
        fmt.Println(a)
        a++
    }
}

执行结果

图片描述

2. for 语言中的break 和 continue

在我们的生产环境中,经常需要用到死循环的场景。所以在 Go 语言中新增了一个 for 关键字死循环的用法,让程序员不用写无聊的 for(;;){}do{} while(1)。同时可以使用 breakcontinue 来控制循环。

Tipsbreakcontinue 的逻辑和语法类似,故本文只介绍break。

2.1 break跳出单层死循环

在你想要结束一个死循环的时候,只需要执行一个 break 语句即可。

代码示例

package main

import "fmt"

func main() {
    a := 0
    for { //死循环的写法就是省略 单次表达式;条件表达式;末尾循环体
        fmt.Println(a)
        a++
        if a >= 10 {
            break //跳出死循环
        }
    }
}

执行结果

图片描述

2.2 break跳出多层死循环

在其它语言中,你很难去控制跳出循环的层数,在 Go 语言中提供了一种break LOOP的写法,可以使循环跳出到 LOOP 所在的位置。

代码示例

package main

import "fmt"

func main() {
    a := 0
LOOP:
    for {
        for {
            fmt.Println(a)
            a++
            if a >= 10 {
                break LOOP //跳出循环至LOOP所在的层级
            }
        }
    }
}

执行结果

图片描述

3. 小结

本文主要介绍了 for 关键字在 Go 语言的 循环 中的用法:

  • for 之后的语句不需要使用()包裹;
  • break+LOOP的形式可以一次性跳出多层循环;
  • for 可以和其它语言中的 while 一样使用;
  • for{…} 的形式是一个死循环。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈