七、 循环

循环

1、for 循环

  1. for condition{}
    代码示例
package main
 
import "fmt"
 
func main() {
    //1.for condition语句
    sum := 0
    for i := 1; i <= 10; i++ {
        sum += i
    }
    fmt.Println(sum) //累加1~10
}

查看运行结果
在这里插入图片描述

  1. for init{}
    代码示例
package main
 
import "fmt"
 
func main() {
    Strings := []string{"google", "golang"}
    for m, n := range Strings {
        fmt.Println(m, n)
    }
}

查看运行结果
在这里插入图片描述

2、循环嵌套

代码示例

package main
 
import "fmt"
 
func main() { 
    //2.循环嵌套:找到1-30内的素数
    var i, j int
    for i = 2; i < 30; i++ {
        for j = 2; j <= i/j; j++ {
            if i%j == 0 {
            break
            }
        }
        if j > (i / j) {
            fmt.Println(i, "是一个素数")
        }
    }
}

查看运行结果
在这里插入图片描述

3、break语句

Go 语言中 break 语句用于以下两方面:

  1. 用于循环语句中跳出循环,并开始执行循环之后的语句。
    代码示例
package main
import "fmt"
fun main() {
    //3.1 break跳出循环
    var a int = 10
    for a < 20 {
        fmt.Println("a的值:", a)
        a++
        if a == 15 {
        break
            }
        }
    }
}

查看运行结果
在这里插入图片描述

  1. break 在 switch(开关语句)中在执行一条 case 后跳出语句的作用。(此break会隐藏)
  2. 在多重循环中,可以用标号 label 标出想 break 的循环。
    代码示例
package main
 
import "fmt"
 
func main() {
    //3.2 break label标出想break的循环
    // 不使用标记
    fmt.Println("---- break ----")
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for i2 := 11; i2 <= 13; i2++ {
            fmt.Printf("i2: %d\n", i2)
            break
        }
    }

    // 使用标记
    fmt.Println("---- break label ----")
re:
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for i2 := 11; i2 <= 13; i2++ {
            fmt.Printf("i2: %d\n", i2)
            break re
        }
    }
 
}

查看运行结果
在这里插入图片描述

4、continue语句

Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。

  1. for 循环中,执行 continue 语句会触发 for 增量语句的执行。
    代码示例
package main
 
import "fmt"
 
func main() { 
    //4.1 continue语句,不是跳出循环,而是跳过当前循环执行下一次循环语句
    a := 10
    for a < 20 {
        a++
        if a == 15 {
            continue
        }
        fmt.Println("a的值为:", a)
    }
}

查看运行结果
在这里插入图片描述

  1. 在多重循环中,可以用标号 label 标出想 continue 的循环。
    代码示例
package main
 
import "fmt"
 
func main() {
    //4.2 使用continue+label标出想 continue 的循环
    // 不使用标记
    fmt.Println("---- continue ---- ")
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for i2 := 11; i2 <= 13; i2++ {
            fmt.Printf("i2: %d\n", i2)
            continue
        }
    }

    // 使用标记
    fmt.Println("---- continue label ----")
re:
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for i2 := 11; i2 <= 13; i2++ {
            fmt.Printf("i2: %d\n", i2)
            continue re
        }
    }
 
}

查看运行结果
在这里插入图片描述

5、goto语句

Go 语言的 goto 语句可以无条件地转移到过程中指定的行。
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

代码示例

package main
 
import "fmt"
 
func main() {
    //5.goto语句可以无条件地转移到过程中指定的行
    /* 定义局部变量 */
    var a int = 10

    /* 循环 */
LOOP:
    for a < 20 {
        if a == 15 {
            /* 跳过迭代 */
            a = a + 1
            goto LOOP
        }
        fmt.Printf("a的值为 : %d\n", a)
        a++
    }
}

查看运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值