5.5. 循环结构

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

循环概念

所谓的循环就是重复的做同一件事情,我们先从生活的角度来理解一下循环。

洗10颗白菜

罚抄单词100遍

爱你10万遍

基本语法结构

在GO语言中,我们有专门实现这种循环的结构就是for结构(GO语言中只有for循环结构,没有while,do-while结构),基本语法结构如下:

for 表达式1;表达式2;表达式3{

 循环体

}

表达式1:定义一个循环的变量,记录循环的次数

表达式2:一般为循环条件,循环多少次

表达式3:一般为改变循环条件的代码,使循环条件终有一天不再成立

循环体:重复要做的事情。

列子,输出,1到10

for i := 1; i <= 10; i++ {
        fmt.Println(i)
    }

计算1-100偶数的和

在for语句中嵌套if条件判断

    sum := 0
    for i := 1; i <= 100; i++ {
        if i%2 == 0 {
            sum+=i
        }
    }

利用赋值算数符号,优化代码

    sum := 0

    for i := 0; i <= 100; i += 2 {

        sum += i

    }

跳转(出)语句

关于GO语句中的跳转语句,有break,continue,goto(与函数结合使用,后期讲解到函数在讲)
下面我们先来讲解break.

根据前面的案例,我们发现,循环必须指定循环条件,在满足循环条件的时候执行循环,如果不满足循环的条件,可以跳出整个循环。

但是如果,我们没有指定循环条件,那么循环就成了死循环,所谓的死循环指的就是一直循环,跳不出来了。

死循环语法

怎样构建死循环呢?语法如下:

for {
    fmt.Println('我爱你')
}

死循环(无限循环)的语法非常简单,就是什么循环条件也没有写。

break语句

break的作用就是跳出本次循环


func main() {

    var i int = 0
    //死循环   循环没有出口
    for {

        //在有些程序循环中 不知道程序执行次数  只有条件满足时程序停止
        if i >= 5 {
            //跳出语句跳出当前循环
            break
        }

        fmt.Println(i)

        i++
    }

}

continue 语句

continue**的作用是:**立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环.

func main() {

    sum := 0
    for i := 0; i <= 100; i++ {
        if i%2 == 1 {
            //结束本次循环 继续下次循环
            //如果在程序中入到continue后剩余代码不会执行 会回到循环的位置
            continue
        }

        sum += i

    }

    fmt.Println(sum)
}

特殊的FLAG 语句

如果在代码中入到 goto 会跳到所定义的标志位

可以在一个循环中跳到另外一个循环中 可以在一个函数中跳到另外一个函数中

例子


func main() {

    goto FLAG

    fmt.Println("hello world3")

    fmt.Println("hello world4")

FLAG:

    fmt.Println("hello world5")

    fmt.Println("hello world6")


}

输出结果:

循环结构

直接输出 5 6,跳出了 3 4.

死循环 goto 例子

func main() {

    //死循环
FLAG:
    fmt.Println("hello world1")
    goto FLAG
    fmt.Println("hello world2")
}

这里就无限goto了。。。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~