深入解析Go语言中for循环的写法

作者:goldensun 时间:2024-05-22 10:11:44 

for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。

语法
for循环在Go编程语言中的语法是:

for [condition |  ( init; condition; increment ) | Range]
{
   statement(s);
}


下面是控制在一个流程的for循环:

如果condition是可用的,那么对于循环只要条件为真时执行。

如果for子句是( init; condition; increment ) 存在则

初始化(init)步骤首先被执行,并且只有一次。这一步可以声明和初始化任何循环控制变量。不需要把一个声明在这里,只要有一个分号出现。

接着,条件(condition)进行了评估计算。如果为true,则执行循环体。如果是假的,循环体不执行,只是之后的for循环流量控制跳转到下一条语句。

for循环执行主体之后,控制流跳转回到增量(increment)语句。此语句可以让你更新任何循环控制变量。这个语句可以留空,只要一个分号出现条件后。

condition现在重新评估计算。如果为true,循环执行的过程中重复(循环体,然后增加步,然后再次条件)。之后如果条件为假,则循环终止。

 

如果range可用,然后循环执行的范围内的每个项目。

流程图:

深入解析Go语言中for循环的写法

例子:


package main

import "fmt"

func main() {
  
   var b int = 15
   var a int

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

   /* for loop execution */
   for a := 0; a < 10; a++ {
      fmt.Printf("value of a: %d\n", a)
   }

   for a < b {
      a++
      fmt.Printf("value of a: %d\n", a)
      }

   for i,x:= range numbers {
      fmt.Printf("value of x = %d at %d\n", x,i)
   }  
}


让我们编译和运行上面的程序,这将产生以下结果:


value of a: 0
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of x = 1 at 0
value of x = 2 at 1
value of x = 3 at 2
value of x = 5 at 3
value of x = 0 at 4
value of x = 0 at 5

Go语言嵌套for循环
Go编程语言允许使用一个循环内嵌套另一个循环。下面的内容展示几个例子来说明这个概念。

语法
在Go语言中嵌套for循环语句的语法如下:

for [condition |  ( init; condition; increment ) | Range]
{
   for [condition |  ( init; condition; increment ) | Range]
   {
      statement(s);
   }
   statement(s);
}


例子:
下面的程序使用嵌套for循环从2至100找出的素数:

package main

import "fmt"

func main() {
   /* local variable definition */
   var i, j int

   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // if factor found, not prime
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d is prime\n", i);
      }
   } 
}


当上述代码被编译和执行时,它产生了以下结果:


2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime
标签:Golang,for
0
投稿

猜你喜欢

  • oracle中变长数组varray,嵌套表,集合使用方法

    2024-01-20 19:51:19
  • 对Python的Django框架中的项目进行单元测试的方法

    2021-02-23 03:17:04
  • PyTorch加载模型model.load_state_dict()问题及解决

    2022-11-08 07:03:53
  • Tensorflow全局设置可见GPU编号操作

    2021-04-21 12:41:46
  • pycharm2020.1.2永久破解激活教程,实测有效

    2021-11-01 15:17:57
  • Pycharm学习教程(5) Python快捷键相关设置

    2021-08-08 18:56:44
  • SQL SERVER查询所有数据库名,表名,和字段名的语句

    2012-01-05 19:25:26
  • PID原理与python的简单实现和调参

    2021-08-13 13:27:36
  • Golang Gob编码(gob包的使用详解)

    2024-02-22 02:16:46
  • Python中Scrapy+adbapi提高数据库写入效率实现

    2024-01-13 14:44:36
  • python3.6.3+opencv3.3.0实现动态人脸捕获

    2022-12-21 11:59:41
  • 简化版的vue-router实现思路详解

    2024-05-10 14:17:28
  • 两个asp函数实现javascript的escape函数和unescape函数功能

    2009-02-04 15:47:00
  • 如何保持Oracle数据库的优良性能

    2024-01-14 18:05:32
  • python 装饰器的实际作用有哪些

    2023-04-10 15:00:50
  • 详解git reset --hard 和 git reset --soft区别

    2023-04-06 09:04:39
  • Python3爬虫里关于识别微博宫格验证码的知识点详解

    2022-01-05 11:44:06
  • Python与C/C++的相互调用案例

    2021-12-23 02:21:29
  • python函数局部变量、全局变量、递归知识点总结

    2023-08-03 14:49:41
  • MySQL 选择合适的存储引擎

    2024-01-21 08:55:24
  • asp之家 网络编程 m.aspxhome.com