Go语言学习之循环语句使用详解

作者:剑客阿良_ALiang 时间:2024-02-03 22:28:17 

1、for循环

写法基本和其他语言一致,只是没有了while循环,用for代替while。

样例代码如下

// for循环
func loop1() {
   sum := 0
   for i := 0; i < 100; i++ {
       sum += i
   }
   fmt.Printf("sum = %d\n", sum)

// 和while循环一样
   sum1 := 3
   for sum1 <= 10 {
       sum1 += sum1
   }
   fmt.Printf("sum1 = %d\n", sum1)
}

执行结果

sum = 4950
sum1 = 12 

2、for-each语法

可以遍历索引和值,和Python的enumrate类似。

样例代码如下

// for-each使用
func loop2() {
   strs := []string{"小王", "小明"}
   for i, str := range strs {
       fmt.Printf("%v今天第%d次去核酸\n", str, i)
   }
   nums := [6]int{1, 2, 4, 6}
   for i, num := range nums {
       fmt.Printf("%d - %d\n", i, num)
   }
}

执行结果

小王今天第0次去核酸  
小明今天第1次去核酸  
0 - 1                
1 - 2                
2 - 4                
3 - 6                
4 - 0                
5 - 0     

3、break的使用

和其他语言一样,循环打断关键字break。

样例代码如下

// break
func loop3() {
   var a int = 0
   var b int = 30
   for b > 0 {
       if a > 4 {
           break
       }
       a++
       b -= 3
   }
   fmt.Printf("a=%d,b=%d\n", a, b)
   var c int = 0
   var d int = 30
   for i := 0; i < 10; i++ {
       c++
       for j := 0; j < 10; j++ {
           if d < 0 {
               break
           }
           d--
       }
   }
   fmt.Printf("c=%d,d=%d\n", c, d)
   c = 0
   d = 30
loop1:
   for i := 0; i < 10; i++ {
       c++
       for j := 0; j < 10; j++ {
           if d < 0 {
               break loop1
           }
           d--
       }
   }
   fmt.Printf("c=%d,d=%d\n", c, d)
}

执行结果

a=5,b=15             
c=10,d=-1            
c=4,d=-1 

注意

1、和java一样,在多重嵌套循环里面,如果不对循环做标识,break只会打断最近的循环。

4、continue的使用

和break基本一致。

样例代码如下

// continue
func loop4() {
   var c int = 0
   var d int = 30
   for i := 0; i < 10; i++ {
       c++
       for j := 0; j < 10; j++ {
           d--
           if d < 0 {
               continue
           }
       }
   }
   fmt.Printf("c=%d,d=%d\n", c, d)
   c = 0
   d = 30
loop1:
   for i := 0; i < 10; i++ {
       c++
       for j := 0; j < 10; j++ {
           d--
           if d < 0 {
               continue loop1
           }
       }
   }
   fmt.Printf("c=%d,d=%d\n", c, d)
}

执行结果

c=10,d=-70           
c=10,d=-7  

5、goto的使用

goto是个有意思的关键字,可以无条件转移到某一行,有点debug的味道。

样例代码如下

//goto
func loop5() {
   m := 0
loop1:
   for m < 20 {
       fmt.Printf("loop1 -> %d\n", m)
       if m > 3 {
           break loop1
       }
       i := 0
   loop2:
       for i < 10 {
           i++
           if i == 5 {
               goto loop2
           }
           fmt.Printf("loop2 -> %d\n", i)
       }
       m++
   }

}

执行结果

loop1 -> 0           
loop2 -> 1           
loop2 -> 2           
loop2 -> 3           
loop2 -> 4           
loop2 -> 6           
loop2 -> 7
loop2 -> 8
loop2 -> 9
loop2 -> 10
loop1 -> 1
loop2 -> 1
loop2 -> 2
loop2 -> 3
loop2 -> 4
loop2 -> 6
loop2 -> 7
loop2 -> 8
loop2 -> 9
loop2 -> 10
loop1 -> 2
loop2 -> 1
loop2 -> 2
loop2 -> 3
loop2 -> 4
loop2 -> 6
loop2 -> 7
loop2 -> 8
loop2 -> 9
loop2 -> 10
loop1 -> 3
loop2 -> 1
loop2 -> 2
loop2 -> 3
loop2 -> 4
loop2 -> 6
loop2 -> 7
loop2 -> 8
loop2 -> 9
loop2 -> 10
loop1 -> 4

注意

1、自己在测试的时候还是碰到点死循环的问题,要很好理解才能使用,不然比较容易死循环。

来源:https://blog.csdn.net/zhiweihongyan1/article/details/124188206

标签:Go语言,循环语句
0
投稿

猜你喜欢

  • python实现水仙花数实例讲解

    2021-04-05 11:38:05
  • 浅谈flask源码之请求过程

    2023-12-17 10:36:48
  • Python通过Pillow实现图片对比

    2023-07-12 08:25:15
  • Oracle锁处理、解锁方法

    2024-01-20 20:15:00
  • Python实现TOPSIS分析法的示例代码

    2021-05-09 19:32:47
  • Python最火、R极具潜力 2017机器学习调查报告

    2023-10-10 01:40:47
  • 使用DataFrame删除行和列的实例讲解

    2021-03-05 21:06:04
  • Java读取数据库表的示例代码

    2024-01-15 05:41:08
  • python连接、操作mongodb数据库的方法实例详解

    2024-01-12 13:44:40
  • Python实现将蓝底照片转化为白底照片功能完整实例

    2021-06-08 21:40:55
  • 用Python制作一个文件加密器

    2023-01-16 02:41:05
  • TensorFlow损失函数专题详解

    2023-08-17 10:12:13
  • python tkinter模块的简单使用

    2021-11-20 16:52:33
  • python绘制雷达图实例讲解

    2022-03-11 01:58:23
  • 利用Python 制作二维码

    2022-07-28 01:07:13
  • Django配置Mysql数据库连接的实现

    2024-01-28 10:48:33
  • GoLand一键上传项目到远程服务器的方法步骤

    2024-04-26 17:33:15
  • 使用ASP常见问题解答

    2007-10-11 14:07:00
  • 在python 脚本下解析json数据

    2022-05-28 10:38:20
  • 详解在Anaconda环境下Python安装pydot与graphviz的方法

    2021-01-27 23:24:24
  • asp之家 网络编程 m.aspxhome.com