Go语言之循环语句(十二)

Go语言循环语句

一、程序的流程控制

程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。

  • 顺序结构:代码从上向下逐行的执行

  • 选择结构:条件满足,某些代码才会被执行。0-1次

    if语句,switch语句

  • 循环结构:条件满足,某些代码会被反复的多次执行。0-n次

​ for语句

二、循环语句

循环语句表示条件满足,可以反复的执行某段代码。
for是唯一的循环语句。(Go没有while循环)
for循环语法结构:

for init; condition; post { }


初始化语句只执行一次。在初始化循环之后,将检查该条件。
如果条件计算为true,那么{}中的循环体将被执行,然后是post语句。
post语句将在循环的每次成功迭代之后执行。
在执行post语句之后,该条件将被重新检查。
如果它是正确的,循环将继续执行,否则循环终止。

示例代码:

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 10; i++ {
        fmt.Printf(" %d",i)
    }
}for循环中声明的变量仅在循环范围内可用。因此,i不能在外部访问循环。

1.for循环变体

所有的三个组成部分,即初始化、条件和post都是可选的。
效果与for( ; ; ) 一样
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环

for key, value := range oldMap {
    newMap[key] = value
}
package main

import "fmt"

func main() {

   var b int = 15
   var a int

   numbers := [6]int{1, 2, 3, 5} 

   /* for 循环 */
   for a := 0; a < 10; a++ {
      fmt.Printf("a 的值为: %d\n", a)
   }

   for a < b {
      a++
      fmt.Printf("a 的值为: %d\n", a)
      }

   for i,x:= range numbers {
      fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
   }   
}

运行结果:
a 的值为: 0
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
a 的值为: 150 位 x 的值 = 11 位 x 的值 = 22 位 x 的值 = 33 位 x 的值 = 54 位 x 的值 = 05 位 x 的值 = 0

2.多层for循环

for循环中又有循环嵌套,就表示多层循环。

三、跳出循环语句

1.break语句

break:跳出循环体。break语句用于在结束其正常执行之前突然终止for循环
示例代码:

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 10; i++ {
        if i > 5 {
            break //loop is terminated if i > 5
        }
        fmt.Printf("%d ", i)
    }
    fmt.Printf("\nline after for loop")
}

2.continue语句

continue:跳出一次循环。
continue语句用于跳过for循环的当前迭代。
在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。

示例代码:

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 10; i++ {
        if i%2 == 0 {
            continue
        }
        fmt.Printf("%d ", i)
    }
}

四、goto语句

goto:可以无条件地转移到过程中指定的行。

解释:
goto语句相当于在代码中安装了一个跳板,可以在随时从代码中脱离出来。

goto label;


label: statement;

在这里插入图片描述
示例代码:

package main

import "fmt"

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

   /* 循环 */
   LOOP: for a < 20 {
      if a == 15 {
         /* 跳过迭代 */
         a = a + 1
         goto LOOP
      }
      fmt.Printf("a的值为 : %d\n", a)
      a++     
   }  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值