Golang教程第12篇(语言循环语句-continue 语句)

Go 语言 continue 语句

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

for 循环中,执行 continue 语句会触发 for 增量语句的执行。
在多重循环中,可以用标号 label 标出想 continue 的循环。

语法
continue 语法格式如下:

continue;

continue 语句流程图如下:
在这里插入图片描述

实例
在变量 a 等于 15 的时候跳过本次循环执行下一次循环:
实例

package main
import "fmt"
func main() {
   /* 定义局部变量 */
   var a int = 10

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

以上实例执行结果为:

a 的值为 : 10
a 的值为 : 11
a 的值为 : 12
a 的值为 : 13
a 的值为 : 14
a 的值为 : 16
a 的值为 : 17
a 的值为 : 18
a 的值为 : 19

以下实例有多重循环,演示了使用标记和不使用标记的区别:

实例

package main
import "fmt"
func main() {

    // 不使用标记
    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
                }
        }
}

以上实例执行结果为:

---- continue ---- 
i: 1
i2: 11
i2: 12
i2: 13
i: 2
i2: 11
i2: 12
i2: 13
i: 3
i2: 11
i2: 12
i2: 13
---- continue label ----
i: 1
i2: 11
i: 2
i2: 11
i: 3
i2: 11
### 空语句 在 Go 语言中,空语句通常就是一个单独的分号 `;`,不过在 Go 里很少会像在 C、C++ 中那样单独使用分号作为空语句。在 Go 中,如果需要一个不执行任何操作的占位语句,可能会在某些语法结构中体现。例如在 `for` 循环里,若不需要循环控制语句的某一部分,可留空,这可看作一种类似空语句的应用: ```go // 无限循环的 for 结构,省略循环控制语句 for { // 循环体 } ``` ### 无限循环语句 Go 语言实现无限循环有多种方式: - 使用 `for` 循环省略条件判断部分: ```go for { // 循环体代码 } ``` - 使用 `for true`(不过这种写法和省略条件判断本质一样,且一般不这么写): ```go for true { // 循环体代码 } ``` ### 标签 在 Go 语言里,标签是一种给代码位置命名的方式,一般和 `goto`、`break`、`continue` 语句配合使用。标签由一个标识符和冒号组成,且标签是大小写敏感的,通常建议全部使用大写字母。示例如下: ```go package main import "fmt" func main() { i := 0 Loop: for i < 5 { if i == 3 { i++ continue Loop } fmt.Println(i) i++ } } ``` 此代码中,`Loop` 就是一个标签,当 `i` 等于 3 时,使用 `continue Loop` 跳转到标签 `Loop` 处继续循环。 ### goto 语句 `goto` 语句用于函数内部的跳转。使用时需注意,若必须使用 `goto`,只应使用正序的(标签位于 `goto` 之后),且中间不能出现定义新变量的语句,否则会导致编译失败。例如: ```go package main import "fmt" func main() { var a int = 2 LOOP: for a < 5 { if a == 3 { a = a + 1 goto LOOP } fmt.Printf("a= : %d\n", a) a++ } } ``` 此代码里,当 `a` 等于 3 时,使用 `goto LOOP` 跳回到 `LOOP` 标签处继续循环。不过,大多数情况下不推荐使用 `goto` 和标签,因为这可能使代码难以理解和维护,更好的选择通常是使用循环和条件语句来控制程序流程[^1][^3][^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值